Tool Unity [BepInEx][plugin] Texture Replacer v1.0.7.2

kumarin

Well-Known Member
Feb 19, 2022
1,577
2,158
so it's GPU than give different performance than? nice discover!
Speed is not matter.
Using texture resize or dump to png, It must have R/W flag. But It is set by dev time.
So solution is like this way.
But as you see there is
RenderTexture renderTex = RenderTexture.GetTemporary(
and
Graphics.Blit(source, renderTex);

These two issue is can't solve now. (different output belong GPU)
Without R/W flag, can't make MD5 too.
or using another solution.
 

bwebrwkerw

Active Member
Sep 23, 2017
627
1,746
I test on my notebook. intel CPU intel GPU.
There are same result is out.
Below 2048x2048 size textures are works ok.
But over is not work.

And above result is different from nvidia and amd.
does no work fix the post

so it's GPU than give different performance than? nice discover!

did you remenber than my other pc give it different result ????

well that one was with INTEL cpu ATI gpu (was incompatible before......)

this is with INTEL cpu NVIDIA gpu...........
Speed is not matter.
Using texture resize or dump to png, It must have R/W flag. But It is set by dev time.
So solution is like this way.
But as you see there is
RenderTexture renderTex = RenderTexture.GetTemporary(
and
Graphics.Blit(source, renderTex);

These two issue is can't solve now. (different output belong GPU)
Without R/W flag, can't make MD5 too.
or using another solution.
no problem ...remenber what if have said before......
if you cannot beat them join them....

we now will generate 2 set of hashes 1 for each type of users GPU....easy fix.....
here is finally guys....
Succubus-Reborn-Universal-Uncensor-Package
all thanks to: bepinex,Gadriel,kumarin,bwebrwkerw

why Universal...because there is no files/asset modificaion......:cool:still edit game every new release???:FacePalm:
why Uncensor...fuck censorship!!!:love:why not???:WaitWhat:
why Package...for easy life???:unsure:for sTupid???:WeSmart:
why......are you still here???:poop:your not funny!!!:KEK:

i just have do some repacking,hashing,checking,testing, ecc........

latest bepinex+autotranslator+demosaic+modimage+latest UserCustomData from Gadriel mega....
using texture from Reborn Uncensor Project.....Mega

for WINDOWS 11 user ONLY:
using autotranslator 5.x maybe cause crashing the game so for more stable experiance use autotranslator 4.21 instead......

there is one problem through.....for now uncensor is INCOMPLETE because.....
2 of the files i found are still censored and i cannot do magic......
sorry but i have packed it for easy view so if any good soul can made good texture is VERY welcome to HELP the project...

some user have reported than they need another set of hash for the files to make the uncen to work.....
this depend of the type of instrucion inside the CPU/GPU than give different result from md5 calculation......
you just need to get a rehash the files using instruction on the Texture_Replacer_readme of the plugin directory.....
get the new number compatible for your pc .......swap name on the same image and then boom!! your done!

or you can use this guide for superior homo sapiens nerdus edition....... :WutFace:
https://f95zone.to/threads/succubus-reborn-20220428b-supporter-sda-lab.62028/post-8298888

ps. the uncensored hash value was calculated using the game version v2022.05.09
any other version maybe will work or not.....never tested because this is first release......
this will always work even on old version but you will have to rehash the file for make it compatible for the needed game version......

so have fun!!! still read :poop:???crap???:poop:

instruction:
extract to main directory and delete everything from bepinex (if any)
(make a backup...better safe than sorry...)



edit1
fixed post & information, adding missing files,fixing stuff v2 released

ps. also if someone gonna improve the texture of the ModImages directoy is very welcome also.....
yeah they are very nice vs censored but still no at the same level of the original developer others girls.......
have you see my latest of this????.....took me a while to write...
there is also a guide i made here
https://f95zone.to/threads/succubus-reborn-20220428b-supporter-sda-lab.62028/post-8298888
 
Last edited:
  • Like
Reactions: kumarin

bwebrwkerw

Active Member
Sep 23, 2017
627
1,746
buddy!!! look we are on TV now!!!!
https://f95zone.to/threads/spending-a-month-with-my-sister-v-2022-06-yakumo-milk.113025/post-7863162

looks inside the download link....:cool:your name is also here.......(y)
the only prob is that will work only for NVIDIA because have this one inside......(had to redownload to remenber......)
Snap4.jpg but is the one with the cheat at least lol!!!!

edit new....
it seem than the new translation from here
https://f95zone.to/goto/post?id=7870334
was made using an ATI/AMD....... this mean whatever version he used will work on your system!!!!
check the newest one and tell me result plz!!!!
 
Last edited:

kumarin

Well-Known Member
Feb 19, 2022
1,577
2,158
buddy!!! look we are on TV now!!!!
https://f95zone.to/threads/spending-a-month-with-my-sister-v-2022-06-yakumo-milk.113025/post-7863162

looks inside the download link....:cool:your name is also here.......(y)
the only prob is that will work only for NVIDIA because have this one inside......(had to redownload to remenber......)
View attachment 1859647 but is the one with the cheat at least lol!!!!

edit new....
it seem than the new translation from here
https://f95zone.to/goto/post?id=7870334
was made using an ATI/AMD....... this mean whatever version he used will work on your system!!!!
check the newest one and tell me result plz!!!!
It's a shame...
 

kumarin

Well-Known Member
Feb 19, 2022
1,577
2,158
There are many thing to explain to...

Hm.. MD5 value was changed issue.
About 10 days ago. I was at home. My home PC is using NVIDIA gpu.
So made MD5 values are equals with bwebrwkerw's.
But I play to go friend's home. There is AMD PC(internal AMD gpu).
So MD5 values was changed by suddenly.

That time, I thought as 'It is cause by game update. Images are changed'.

Making texture's unique value. It's simple. making with texture's contents.
But...
There is "IsReadable" flag in textures. It can be set by unity developer tool. Default value is "false".
Because, If it was set to true, gpu and cpu are can read & write that texture. So, There is need synced.
It makes application(game) to slow. So default value is "false".
To reading texture's contents, Needed that flag. Without that flag, can't do ReadPixels, make MD5, and so on.
As you know, Auto Translator has Texture replace function.
But do dumping with it, not at all textures are dumped.
Cause that flag. May be give up dump many textures.

But there is the way to read it.
Make RenderTexture and original "blit" to RenderTexture.
Copy RenderTexture to new making Texture2D. It's made by cpu. So can read/write with cpu.
With made new Texture2D, encodeToPNG, read pixels, can do everythings.

But there was trap...
blit() uses GPU and result is different, belong to GPU.
Different colors to colors meets points. GPU processing filter.. like an Anti-Aliasing or so on.
So.. unique value(MD5) are can't be made by using "blit".
But without "blit", Can't do anythings.

It was BIG problem.

Using "blit" and make filter what makes similar images. It's my thought of idea.

I tested "Spending a month..", "Object Control" and "Succubus Reborn" on NVIDIA and INTEL gpus.
May be works on AMD...
 

Night Mirror

Well-Known Member
Modder
Jun 2, 2018
1,671
8,605
This is something I have been searching for the better part of a year, and holy shit, it does exactly what I need it to do! I have gone through so many other programs and systems just to be able to replace texture files. AMAZING WORK! THANK YOU!
 
Last edited:
  • Like
Reactions: kumarin

KpRomplestein

Newbie
Jul 15, 2019
36
99
Thanks for suggestions.


I don't think prepared image is must same as target. for example, The Fairy Tale of Holy Knight Ricca: Two Winged Sisters has the 4k modded textures.


Succubus Reborn it is. But many other games are not. for example, Succubus Heaven, Rampant Pervert vs the Public Discipline Committee, and so on. Rapidly scenes loaded and changing textures counts. So, marking replaced has some risk. If using with options(set with .ini file), It can possible.


It's similar with my process. But your way check iterations count. If texture is large and added small size texture on unity atlas, can missing those area. And there can be similar textures just different little bit. Can be those hash are same.
As you see, I resize texture to 1/16 size and calculate. It isn't takes long time.

I think that filename is not important to us. It's just using by games(apps).
If need to categorized, use sub folder. As I said "Translate(images) ", He categorized translated images as below
  • BOOKS\
  • ICONS\
  • UI\
So, want to comments to modded image files, Just make sub folder to describe. ex) "flying tenshi blowjob". Game is using hundred~thousand textures.


Yes. Texture's name is not easy be changed.
I wanted to make one more comment, but figured we could continue the discussion here instead of cluttering up the game thread.
Regarding this:
I don't think prepared image is must same as target. for example, The Fairy Tale of Holy Knight Ricca: Two Winged Sisters has the 4k modded textures.
I was not talking about comparing heights and widths of the modified image files, I was talking about comparing heights and widths of the original image files extracted from the game - remember the main difference is that I am using 2 folders (1 for target images - the images originally extracted, and 1 for modified images)

Just to be clear, we have 3 sets of images:

1.) Extracted images (call this EI - stored locally)
2.) Modified images (call this MI - stored locally )
3.) 'Runtime' images (call this RI - stored in/referenced by Texture2D object)

So the steps are:
1.) Create a class to link EI and MI together (so that when you find a matching EI, you can replace it with MI).
Java:
public class ImagesToSwap
    {
        public ReplacementImage EI { get; } //extracted image
        public ReplacementImage MI { get; } // modified image
        public ImagesToSwap(ReplacementImage target, ReplacementImage uncen)
        {
            this.EI = target;
            this.MI = uncen;
        }
    }
2.) loop through RI, and check if EI.height == RI.height && EI.width == RI.width -> if so, replace RI with MI.
Java:
foreach (Texture2D RI in textures)
{
    if (ImagesToSwap.Exists(i => i.EI.width == RI.width
                              && i.EI.height == RI.height))
    {
        //pseudo-code: RI = i.MI
    }
}
Anyways - I don't think any of the assumptions I made for Succubus Reborn are good 'general' assumptions. They definitely would not be true in most games.

Again, great work on this plugin - will definitely be using it for other games in the future.
 

kumarin

Well-Known Member
Feb 19, 2022
1,577
2,158
Updated v1.0.0.8
Not many changes. just more compatibility.
May be changes will occurs when I work with RICCA. (or not..)
 

kumarin

Well-Known Member
Feb 19, 2022
1,577
2,158
I wanted to make one more comment, but figured we could continue the discussion here instead of cluttering up the game thread.
Regarding this:

I was not talking about comparing heights and widths of the modified image files, I was talking about comparing heights and widths of the original image files extracted from the game - remember the main difference is that I am using 2 folders (1 for target images - the images originally extracted, and 1 for modified images)

Just to be clear, we have 3 sets of images:

1.) Extracted images (call this EI - stored locally)
2.) Modified images (call this MI - stored locally )
3.) 'Runtime' images (call this RI - stored in/referenced by Texture2D object)

So the steps are:
1.) Create a class to link EI and MI together (so that when you find a matching EI, you can replace it with MI).
Java:
public class ImagesToSwap
    {
        public ReplacementImage EI { get; } //extracted image
        public ReplacementImage MI { get; } // modified image
        public ImagesToSwap(ReplacementImage target, ReplacementImage uncen)
        {
            this.EI = target;
            this.MI = uncen;
        }
    }
2.) loop through RI, and check if EI.height == RI.height && EI.width == RI.width -> if so, replace RI with MI.
Java:
foreach (Texture2D RI in textures)
{
    if (ImagesToSwap.Exists(i => i.EI.width == RI.width
                              && i.EI.height == RI.height))
    {
        //pseudo-code: RI = i.MI
    }
}
Anyways - I don't think any of the assumptions I made for Succubus Reborn are good 'general' assumptions. They definitely would not be true in most games.

Again, great work on this plugin - will definitely be using it for other games in the future.
Ah.. I read this post too late.
I think your method is not to bad.
Thanks.
 

kumarin

Well-Known Member
Feb 19, 2022
1,577
2,158
Ah damn. Is there no way to overrule that?
Edit asset file with tool(ABBE or something). Can replace the resource file. But game updated.. It's needed repetitive works.
What is the game U want edit ?
 

glenn8

New Member
Jun 16, 2017
9
4
Edit asset file with tool(ABBE or something). Can replace the resource file. But game updated.. It's needed repetitive works.
What is the game U want edit ?
No specific game. All games in general.
I already tried with ABBE but that cannot inject gif/apng. Unless you mean something else?
 

kumarin

Well-Known Member
Feb 19, 2022
1,577
2,158
No specific game. All games in general.
I already tried with ABBE but that cannot inject gif/apng. Unless you mean something else?
You may try change static image to animated. May be Unity is not support gif/apng.
 

kumarin

Well-Known Member
Feb 19, 2022
1,577
2,158
(will) Updated to v1.0.1.0
Sorry for users. MD5(file naming) must be re-worked.
 
Last edited: