Instale o Steam
iniciar sessão
|
idioma
简体中文 (Chinês simplificado)
繁體中文 (Chinês tradicional)
日本語 (Japonês)
한국어 (Coreano)
ไทย (Tailandês)
Български (Búlgaro)
Čeština (Tcheco)
Dansk (Dinamarquês)
Deutsch (Alemão)
English (Inglês)
Español-España (Espanhol — Espanha)
Español-Latinoamérica (Espanhol — América Latina)
Ελληνικά (Grego)
Français (Francês)
Italiano (Italiano)
Bahasa Indonesia (Indonésio)
Magyar (Húngaro)
Nederlands (Holandês)
Norsk (Norueguês)
Polski (Polonês)
Português (Portugal)
Română (Romeno)
Русский (Russo)
Suomi (Finlandês)
Svenska (Sueco)
Türkçe (Turco)
Tiếng Việt (Vietnamita)
Українська (Ucraniano)
Relatar um problema com a tradução
http://steamcommunity.com/app/237850/discussions/0/617319460809356048/?tscn=1416011289
But i have not found any d3d9 imports in game and found OpenGL so suspected its OpenGL i have not tried to use helix.
So, this game is actually d3d9 after all?
Also with another game - Monochroma, which uses unity as well, i encounter strange behavior when after every launch shaders actually has different order and crc than during previous launch (at same level, with same settings) and my overrides was not working, Dreamfall does not have this problem, isn it?
Man, can you explain me some things about helix dll? At the moment im simply dumping shader in another games and editing asm to tweak them, but i see other people use some keyboard button toggle some effects and stuff. I would like to do that with effects in Dreamfall and other games, bind some buttons to toggle effects or values from shaders that defines how stong this effects is and other things (just for example) - so how can i do that?
I have not found any detailed readme about all the advanced helix features.
Have you disabled lense flares, and other ugly overlay effects for 3d vision fix? And if you dont, since you already familiar with unity and dreamfall shader modification, can you help me to solve possible unity problems please?
bo3b recently started a school to teach fixing games with Helix mod, which I've found invaluable so far - I'd highly recommend checking out the lessons on his wiki and then heading over to the forums with any questions:
http://wiki.bo3b.net
https://forums.geforce.com/default/topic/766890/3d-vision/bo3bs-school-for-shaderhackers
I haven't disabled any of the post processing effects in the fix, but you should have no trouble using Helix mod to disable them. I can probably release an updated fix with a button to toggle them on and off when I get a bit more time to work on it.
Bo3b also noticed the OpenGL dependency, and we're not really sure why it's there. The game is definitely D3D9, so our best guess is that it's something to do with the way Unity works internally. One thing to be aware of with Unity games is that they have all started using borderless windowed mode (seems the default changed in Unity recently), which can prevent 3D vision from engaging. The ini in this fix selects a profile that allows windowed 3D to get around this.
I've heard of a few games with shaders that change CRC numbers. I haven't had to deal with that myself yet, but as I understand it there are two ways to handle it - first, try setting UseAlternateCRC=true in the DX9Settings.ini, which (I think) will stop the metadata from being used in the CRC calculation and might give you a more consistent result.
If that doesn't work, the other option is to write a LUA script that can do it's own matching and return the fixed shader. This is a bit harder since it involves programming, and I'm only aware of one LUA script that already does something like this (IIRC it's in some of the fixes for Unreal games), so hopefully you can get away with UseAlternateCRC. If you need more help with this (or any other advanced Helix Mod questions), the right place to ask is this thread:
https://forums.geforce.com/default/topic/513190/3d-vision/how-to-fix-disable-shaders-in-games-dll-guide-and-fixes-
Yeah, the lack of documentation was a real sticking point for me learning Helix mod as well. bo3b's school has finally addressed that (and also I may have done a wee bit of reverse engineering on the DLL itself). As well as the school, we've been trying to document all the feature's here:
http://wiki.bo3b.net/index.php?title=HelixMod_Feature_List
Using the keyboard button to toggle effects is covered in lesson 3 of bo3b's school:
http://wiki.bo3b.net/index.php?title=Lesson_3_-_Const
If you take a look inside the DX9Settings.ini file in my Dreamfall fix, you can see I've got the whole number row set up to adjust one value that is used in the shaders to adjust the HUD depth, as well as U set up to cycle the light shafts between partial fix, no fix and disabled, and a couple of other buttons I use whenever I want to do a quick before and after comparison.
As for OpenGL.dll imports i figured that out.
Since unity support OGL D39-D311 via single executable and without keeping 3 separated renderers in different dlls, to initialise successfully it uses OpenGL as its present in every OS, not like D39 which may be missing in default Win 7 installation and lead games to crash, and not like D3D10+ which is missing on XP and causing same thing.
So they use OpenGL as bulletproof api to avoid crashes due of lack of api on start. After this Unity switching to internally configured API which is called on demand, not during load time, so thats why D3D dll imports are missing.
Also i forgot that Unity allows to switch between any of API in any game by using command line arguments
-force-opengl
-force-d3d9
-force-d3d11
i played with it in monocrhoma.
Depending on how game was coded it may miss some shaders for some api it was not prepared for, but core renderer is actually working same in all 3 of them, usually default shaders works like sharm and custom shaders usually exist for one api, coz devs are lazy to them for all 3 of them.
I have not tried yet but im 100% sure we can launch Dreamfall chapters in OpenGL and D3D10+ modes, but results will probably be ugly.
A little bit of offtopic:
As i notticed everyone just use helix mod to fix 3d vision.
I starting to feel as lonely inventor because im using it to fix some broken or ugly shaders such as ugly postprocessing (fixed Dead Rising 2 ugly color grading, Deadly Premonition color grading and few more games) and also im using it to disable HUD elements, like all that annoying popups, minimaps, XP counters, pointers that tells you where to go and forced black bars in cut-scenes.
What i really want to master is how to separate one hud element from other if they are rendered with same vertex and pixel shader, and another thing i would really love to do is bind toggle to gamepad to avoid side effects like when i disable huds in gameplay it also disables menues, and i just wish to enable menues for a while after im pressing menu button an disable it again after i quit menu.
Can this be done with helix you think? Does its LUA engine allows to do dll calls from lua script, to poll xinput1_3.dll and get button presses? And how exaclty i can add lua scripts to helix? Im familiar with lua, but im not familiar with helix way of using lua.
Also is there any way to catch variable parameter passed to shader and change it in helix?
In Unreal Engine 3 games i was trying to fix a lot of shaders are chained and called with externally controlled parameters (parameter can be set in very different shader), when i dump shaders i dont know their values, i think i may redefine them in body of shader to override passed values, but its would be blind guess work because i dont know exact correct values it uses by default.
In such cases if i disable one shader, i break entire chain of shader that follows and gettin black or white or totally screwed output.
How do you solve this problem in helix?
With debug dll it works only at dumping stage, but when i put shaders with simple ps_2 to disable them in override folder, both debug and release dlls does not hook them, i ves seen few games before that behaved like this but i dont have any solution for this.
Can you give me some tip of what am i doing wrong?
Settings are same, crc are same, here my ini settings:
And here list of annoying post effects i collected, without them games is much better.
Maybe you can make that work?
I suppose i should use all dumped shaders and change 3_0 instead of 2, now that would be pain in ass.
That is really interesting information - thanks!
The way we usually handle this is to match the texture CRC being rendered. To find the texture CRC, set bCalcTexCRCatStart=true in the ini and you can cycle textures with Up/Down (you can also change PrexTexKey and NextTexKey if you need to use different keys), which will black out the textures in much the same way as shader hunting.
Then you define a section for whichever shader you are disabling similar to the following example from Dreamfall Chapters:
Then inside the shader you can check the X component of the constant defined by TexCounterReg for ValForDefined or ValNotDefined and do different actions, e.g.:
I'm not sure how much is possible with the LUA engine - so far I've only seen it used to process shaders, but I haven't played with it myself yet. VScript.lua is called from CreateVertexShader() and PScript.lua is called from CreatePixelShader(), but I don't know if they stay resident or can do anything besides processing the shader assembly.
Yeah, you can get a constant from one shader and pass it into another. Use GetConstNFromReg in the shader you want to get it from and SetConstNToReg in the shader you are passing it to, where N is a number from 1 to 3. You can also pass two whole matrices (or any four contiguous constant registers) around, which I had to do to fix the shadows in Dreamfall:
You can also do something similar with sampler registers if you need to access a texture from another shader.
Another trick is to use presets to set constant registers that can be accessed from any shader. These profiles can be activated by keypress, or whenever a particular texture is active, or whenever a particular shader is active - this is sometimes used to detect when the game is in a menu or cutscene.
http://helixmod.blogspot.com.au/2013/05/vs11vs20-vs30-converter.html
https://github.com/DarkStarSword/3d-fixes/blob/master/shadertool.py
I'd suggest trying a few methods to disable shaders - rather than replacing them with a blank body, try setting their outputs to 0 or 1 (or sometimes even different values in different components). This is covered in lesson 2:
http://wiki.bo3b.net/index.php?title=Lesson_2_-_disable_effect
Awesome! Thank you again for all of your work. I'll distract myself with other games in my backlog until then :D
I was checking every day on the github page watching your progress! Thank you very much. Do you have a donation link by the way?
But anyway, your comment prompted me to finally set one up to see what happens. I set it up on Patreon, since I know modders in other communities have started using it and it seems like a reasonable fit for what I do:
https://www.patreon.com/DarkStarSword