trimi

Newbie
May 14, 2017
55
59
Alright, here's the save file with all scenes unlocked: first save slot is the normal scenes, second save slot is the ending scenes.

Just download the zip, extract it and drop at the game's root folder.
However, note that it will replace your current save file (Tyrano, unlike RPGM, uses one file for all saves it seems), so make sure to rename it (your file) to something else if you want to keep it.
I cannot find the root folder of this game. When I go to Appdata Roaming Hypnosis it does not have the same type of file
 

Ardlan

Newbie
Mar 29, 2018
34
27
what is this number?
How much a plugin increase the value with which the "Mind Barrier" decrease.
It stands for 'Overall/Akika/Yuria/Yuno/Renmu'.
In the case posted above Akika would get a increase of 16, Yuria 10, Yuno, 10 Renmu 16 and all Sub-Heroines 7.
 
  • Like
Reactions: Agnikai

Alexander_J

New Member
Jul 3, 2024
2
1
It's a bit more complicated than that. I had some time on my hands and I did several tests to see how those numbers correlated with the amount of mind damage inflicted and it seems that heroines and sub-heroines have different formulas.

Quick disclaimer : These are quick tests based on the first in-game week's available heroines. More testing is needed to pin down the exact formula and to test on other heroines/sub-heroiones but so far the results have roughly tracked with my hypotheses.

For heroines, the formula seems to be:

Let Specific Character Value = Overall+Heroine value of a plugin

Mind Damage value = (Total specific character value for all plugins/10).

For sub-heroines, it seems to be simpler. It's Mind Damage value = 20+(total overall plugin value/10).

When you interact with a "heart" event, you subtract this from the Mind Barrier number in the conception planner. The game will display a value rounded to the nearest whole number but I suspect that it keeps track of decimal points. I've had instances where I've been doing 25 points of damage (supposedly) but was left with 1 point after the fourth action when it should have been 0 points. So keep that in mind.

Obviously it needs more testing and I'll refine it as I play the game a few more times. But until then, hope this rough calculations help you guys with playing this confusing game.
 
  • Like
Reactions: Agnikai

Ardlan

Newbie
Mar 29, 2018
34
27
It's a bit more complicated than that. I had some time on my hands and I did several tests to see how those numbers correlated with the amount of mind damage inflicted and it seems that heroines and sub-heroines have different formulas.

Quick disclaimer : These are quick tests based on the first in-game week's available heroines. More testing is needed to pin down the exact formula and to test on other heroines/sub-heroiones but so far the results have roughly tracked with my hypotheses.

For heroines, the formula seems to be:

Let Specific Character Value = Overall+Heroine value of a plugin

Mind Damage value = (Total specific character value for all plugins/10).

For sub-heroines, it seems to be simpler. It's Mind Damage value = 20+(total overall plugin value/10).

When you interact with a "heart" event, you subtract this from the Mind Barrier number in the conception planner. The game will display a value rounded to the nearest whole number but I suspect that it keeps track of decimal points. I've had instances where I've been doing 25 points of damage (supposedly) but was left with 1 point after the fourth action when it should have been 0 points. So keep that in mind.

Obviously it needs more testing and I'll refine it as I play the game a few more times. But until then, hope this rough calculations help you guys with playing this confusing game.
Yes and no. The difference is simply the Number shown and the number used for calculation. The game calculates with a initial value of 1000 while only showing you a 100. The only thing i need to correct in my post would be the addition for the main heroines (the first number is only for the Sub-Heroines) but that's a difference between whats written in the game and the code.

Let's go down the rabbit hole.
For the display of the current status we have the following lines of code (see resources/app/data/scenario/status.ks)

Code:
;深層防壁
[iscript]
    //深層防壁の現在値と最大値を結合
    f.statusSaimin = Math.floor(f.textP_h02/10) + '/100' ;
[endscript]

;深層防壁の現在値が100より大きい場合、表示を100にする
[eval exp="f.statusSaimin = 100 + '/100'" cond="f.textP_h02 > 1000"]

;深層防壁の現在値が0以下の場合、表示を0にする
[eval exp="f.statusSaimin = 0 + '/100'"   cond="f.textP_h02 <= 0"]
The first line with "f.statusSaimin" will give you the current value divided by 10 (as mentioned by you) rounded down (see function).
The following two are for the cases one go over 1000 (through prostitution) or under 0 (every event which can reduce the value).

So now is the question where do we get the value in "f.textP_h02" from?
This value is set in "resources/app/data/scenario/call/call_csvLoad_text.ks" as follows:
Code:
f.textP_h02 = f.textCsv[i][1]  ;    //催眠進行度
Now we have "f.textCsv[1]". "textCsv" represents the content of "resources/app/data/scenario/csv/text.csv", the "i" is the heroine number (line) in the csv and the "1" the second column (count starts at 0). At the start of a new game this value gets set to 1000 (see resources/app/data/scenario/setting/startHensu.ks).

Expect for some places which set that value to a fixed number of 0 or 500 or 1000 (eg. after completing the game to change it at will) it only gets changed at one place "resources/app/data/scenario/macro/macro_parameter.ks".
In this file are basicaly 3 macros to add or substract from that number:

First prostitution:
Code:
;【ey】風俗落ち
[macro name="parameter_ey"]
    ;所持金(加算)
    [eval exp="f.buyPoint_all += 500" ]

    ;深層防壁(加算)
    [eval exp="f.textCsv[f.charaNo][1] += 1" ]

    ;レイプ目フラグチェック(ON)
    [eval exp="f.evCsv_eyCsv[f.charaNo][11] = 1" ]

    ;風俗堕ちフラグ(ON)
    [eval exp="f.evCsv_eyCsv[f.charaNo][12] = 1" ]

[endmacro]
In this case you get +1 to the value basically increasing the barrier (remeber no matter how much you get over the 1000 you will never see somthing over 100 in the status screen).

The second is for the main heroines:
Code:
;【ev】エロ
[macro name="parameter_ev"]
    [iscript]
        //変数の初期化
        f.ev_saimin_01 = 0 ;    //深層防壁_01
        f.ev_saimin_02 = 0 ;    //深層防壁_02
        f.ev_saimin_03 = 0 ;    //深層防壁_03
        f.ev_saimin_04 = 0 ;    //深層防壁_04

        //入手アイテムから深層防壁値を累積計算
        for( var i = 1 , l = f.shopCsv_length ; i < l ; i++ ){
            if (f.shopCsv[i][9] == 1) {
                f.ev_saimin_01 += Number(f.shopCsv[i][5]) ;
                f.ev_saimin_02 += Number(f.shopCsv[i][6]) ;
                f.ev_saimin_03 += Number(f.shopCsv[i][7]) ;
                f.ev_saimin_04 += Number(f.shopCsv[i][8]) ;
            }
        }
    [endscript]

    ;メインヒロインの深層防壁(減算)
    [eval exp="f.textCsv[f.charaNo][1] -= Number(f.ev_saimin_01)" cond="f.charaNo == 1"]
    [eval exp="f.textCsv[f.charaNo][1] -= Number(f.ev_saimin_02)" cond="f.charaNo == 2"]
    [eval exp="f.textCsv[f.charaNo][1] -= Number(f.ev_saimin_03)" cond="f.charaNo == 3"]
    [eval exp="f.textCsv[f.charaNo][1] -= Number(f.ev_saimin_04)" cond="f.charaNo == 4"]

[endmacro]
"ev_saimin_01-4" represents for each main heroines the number which will be substracted later.
In the "for-loop" the game loops over every item in the shop (shopCsv -> resources/app/data/scenario/csv/shopItem.csv) and in case it was bought adds the number for each heroine (column in the csv). After thats done the number gets substracted from the heroine the event effects.


The third would be the sub heroines:
Code:
;【ex】家族を増やす
[macro name="parameter_ex"]
    [iscript]
        //変数の初期化
        f.ev_saimin_sub = 0 ;    //深層防壁:サブヒロイン

        //入手アイテムから深層防壁値を累積計算
        for( var i = 1 , l = f.shopCsv_length ; i < l ; i++ ){
            if (f.shopCsv[i][9] == 1) {
                f.ev_saimin_sub += Number(f.shopCsv[i][4]) ;
            }
        }
    [endscript]

    ;深層防壁(減算)
    [eval exp="f.textCsv[f.charaNo][1] -= (f.ev_saimin_sub + 200)" ]

[endmacro]
The preparations for the calculation are basicaly the same as for the main heroines so lets jump the calculation.
Here you get an addition of 200 which would be end up as a 20 shown on screen.


There is also a case in this file where it get set to a fixed value of 1 under a certain condition.
Consdering the comments it's realated to NTR.


Now to your observation .
If we asume a plugin value of 5 for a sub heroine you would get a 25 substracted from 100 equalling in 75 while the game actually substracts a 205 from 1000 equalling in 795 and showing you a 79.
For a main heroine it would be a 5 substracted from 100 equalling in 95 while the game actually substracts a 5 from 1000 equalling in 995 and showing you a 99.
 

Whotfisthis

Well-Known Member
May 30, 2021
1,066
890
Yes and no. The difference is simply the Number shown and the number used for calculation. The game calculates with a initial value of 1000 while only showing you a 100. The only thing i need to correct in my post would be the addition for the main heroines (the first number is only for the Sub-Heroines) but that's a difference between whats written in the game and the code.

Let's go down the rabbit hole.
For the display of the current status we have the following lines of code (see resources/app/data/scenario/status.ks)

Code:
;深層防壁
[iscript]
    //深層防壁の現在値と最大値を結合
    f.statusSaimin = Math.floor(f.textP_h02/10) + '/100' ;
[endscript]

;深層防壁の現在値が100より大きい場合、表示を100にする
[eval exp="f.statusSaimin = 100 + '/100'" cond="f.textP_h02 > 1000"]

;深層防壁の現在値が0以下の場合、表示を0にする
[eval exp="f.statusSaimin = 0 + '/100'"   cond="f.textP_h02 <= 0"]
The first line with "f.statusSaimin" will give you the current value divided by 10 (as mentioned by you) rounded down (see function).
The following two are for the cases one go over 1000 (through prostitution) or under 0 (every event which can reduce the value).

So now is the question where do we get the value in "f.textP_h02" from?
This value is set in "resources/app/data/scenario/call/call_csvLoad_text.ks" as follows:
Code:
f.textP_h02 = f.textCsv[i][1]  ;    //催眠進行度
Now we have "f.textCsv[1]". "textCsv" represents the content of "resources/app/data/scenario/csv/text.csv", the "i" is the heroine number (line) in the csv and the "1" the second column (count starts at 0). At the start of a new game this value gets set to 1000 (see resources/app/data/scenario/setting/startHensu.ks).

Expect for some places which set that value to a fixed number of 0 or 500 or 1000 (eg. after completing the game to change it at will) it only gets changed at one place "resources/app/data/scenario/macro/macro_parameter.ks".
In this file are basicaly 3 macros to add or substract from that number:

First prostitution:
Code:
;【ey】風俗落ち
[macro name="parameter_ey"]
    ;所持金(加算)
    [eval exp="f.buyPoint_all += 500" ]

    ;深層防壁(加算)
    [eval exp="f.textCsv[f.charaNo][1] += 1" ]

    ;レイプ目フラグチェック(ON)
    [eval exp="f.evCsv_eyCsv[f.charaNo][11] = 1" ]

    ;風俗堕ちフラグ(ON)
    [eval exp="f.evCsv_eyCsv[f.charaNo][12] = 1" ]

[endmacro]
In this case you get +1 to the value basically increasing the barrier (remeber no matter how much you get over the 1000 you will never see somthing over 100 in the status screen).

The second is for the main heroines:
Code:
;【ev】エロ
[macro name="parameter_ev"]
    [iscript]
        //変数の初期化
        f.ev_saimin_01 = 0 ;    //深層防壁_01
        f.ev_saimin_02 = 0 ;    //深層防壁_02
        f.ev_saimin_03 = 0 ;    //深層防壁_03
        f.ev_saimin_04 = 0 ;    //深層防壁_04

        //入手アイテムから深層防壁値を累積計算
        for( var i = 1 , l = f.shopCsv_length ; i < l ; i++ ){
            if (f.shopCsv[i][9] == 1) {
                f.ev_saimin_01 += Number(f.shopCsv[i][5]) ;
                f.ev_saimin_02 += Number(f.shopCsv[i][6]) ;
                f.ev_saimin_03 += Number(f.shopCsv[i][7]) ;
                f.ev_saimin_04 += Number(f.shopCsv[i][8]) ;
            }
        }
    [endscript]

    ;メインヒロインの深層防壁(減算)
    [eval exp="f.textCsv[f.charaNo][1] -= Number(f.ev_saimin_01)" cond="f.charaNo == 1"]
    [eval exp="f.textCsv[f.charaNo][1] -= Number(f.ev_saimin_02)" cond="f.charaNo == 2"]
    [eval exp="f.textCsv[f.charaNo][1] -= Number(f.ev_saimin_03)" cond="f.charaNo == 3"]
    [eval exp="f.textCsv[f.charaNo][1] -= Number(f.ev_saimin_04)" cond="f.charaNo == 4"]

[endmacro]
"ev_saimin_01-4" represents for each main heroines the number which will be substracted later.
In the "for-loop" the game loops over every item in the shop (shopCsv -> resources/app/data/scenario/csv/shopItem.csv) and in case it was bought adds the number for each heroine (column in the csv). After thats done the number gets substracted from the heroine the event effects.


The third would be the sub heroines:
Code:
;【ex】家族を増やす
[macro name="parameter_ex"]
    [iscript]
        //変数の初期化
        f.ev_saimin_sub = 0 ;    //深層防壁:サブヒロイン

        //入手アイテムから深層防壁値を累積計算
        for( var i = 1 , l = f.shopCsv_length ; i < l ; i++ ){
            if (f.shopCsv[i][9] == 1) {
                f.ev_saimin_sub += Number(f.shopCsv[i][4]) ;
            }
        }
    [endscript]

    ;深層防壁(減算)
    [eval exp="f.textCsv[f.charaNo][1] -= (f.ev_saimin_sub + 200)" ]

[endmacro]
The preparations for the calculation are basicaly the same as for the main heroines so lets jump the calculation.
Here you get an addition of 200 which would be end up as a 20 shown on screen.


There is also a case in this file where it get set to a fixed value of 1 under a certain condition.
Consdering the comments it's realated to NTR.


Now to your observation .
If we asume a plugin value of 5 for a sub heroine you would get a 25 substracted from 100 equalling in 75 while the game actually substracts a 205 from 1000 equalling in 795 and showing you a 79.
For a main heroine it would be a 5 substracted from 100 equalling in 95 while the game actually substracts a 5 from 1000 equalling in 995 and showing you a 99.
I've never seen a more effort-ful post in a thread for a game with this kinda rating lmao, even more funny when it's one of coding-deep-dive posts
 

Ardlan

Newbie
Mar 29, 2018
34
27
I've never seen a more effort-ful post in a thread for a game with this kinda rating lmao, even more funny when it's one of coding-deep-dive posts
tbh I seldom care about the rating since it's usually somewhere between on point and total bullshit. So if it looks interesting I try it esp. if it doesn't hurt my wallet ;)

And for the coding-deep-dive my curiosity took over and why not post it.
Even thought writing it down took longer than doing the dive x)
 
  • Haha
Reactions: Whotfisthis

Alexander_J

New Member
Jul 3, 2024
2
1
Great read! I have no idea how to look into the code itself but I do like math and a good puzzle so I enjoyed just observing the numbers and reasoning out how it worked and your post just made it even more fun to read.

I had the idea that the game was counting the mind barrier as 1000 and showing it as 100. The reason why I had the plugin numbers divided by 10 before subtracting it from the mind barrier was because I wanted to keep to the 100 and reasoned out that the game kept decimals. To find out that it's actually tracked in the hundreds (no decimals needed) was interesting.

And it makes sense why my calculations didn't tally even though they were in the ballpark. That's one less thing bugging me when I got to sleep later tonight.
 

Agnikai

Newbie
May 18, 2021
43
38
Just skip the in game tutorial. Read the Guide provided on first page instead.
---

I tried this game for awhile. While the idea is great, there is no actual act of hypnotizing. And the art is so bad like it's half done sketches. Plus it's censored. bah.
 
2.60 star(s) 17 Votes