Tales of Zestiria

Tales of Zestiria

View Stats:
Kaldaien Oct 26, 2015 @ 7:27am
Tales of Zestiria "Fix" - v 1.6.1 [Borderless Window] - (10/28/16)
Introduction
This project fixes:
  • The 30 FPS cap (Author: DrDaxxy)
  • Stutter caused by Namco's Framerate Limiter
  • Shimmering Artifacts
  • 7.1 Channel Audio Crashes (PATCHED: 11/3/2015)
  • Crashes and Audio Distortion caused by Sample Rate
  • Aspect Ratio on Full-Motion Videos
  • Aspect Ratio and FOV in the Field
  • Aspect Ratio in Menus
    http://steamcommunity.com/sharedfiles/filedetails/?id=548648827
  • Steam Broadcasting
    • Enable this yourself by editing tzfix.ini
    • Or open the console (Ctrl+Shift+Tab) and type AllowBroadcasts 1
It also adds:
  • Custom intro videos
    • (play ANY .bk2 file)
  • Increased character shadow detail (Author: Durante)
  • Framerate counter with instantaneous frametime
  • Support for frame rates below 30 FPS at normal game rate
  • Steam achievement unlock sound
    • PSN trophy sound is the default, but you can use any .wav file

Download the Patch
Please see the Software Manual for Installation, Configuration and General Usage:

http://steamcommunity.com/sharedfiles/filedetails/?id=542500356

Partial Version History
v 1.6.1 (10/28/2016)[github.com]
Fixes taskbar visibility in fullscreen borderless mode

v 1.6.0 (10/21/2016)[github.com]
Adds Borderless Window Mode
  • The game's windowed mode option is now borderless, use tzt.exe to configure this.
  • The game can be setup to continue running while in the background (enabled by default)

v 1.5.3 (10/11/2016)[github.com]
Improved Alt+Tab and Third-Party Support
  • Fixes compatibility problems with thrid-party software; includes changes to default d3d9.ini settings

v 1.5.2 (10/9/2016)[github.com]
UTF-8 Support
  • Adds support for UTF-8 INI files and fixes issues in TZT.exe for Chinese users.

v 1.5.1 (10/5/2016)[github.com]
Config File Preservation
  • Future updates will not overwrite your config files unless a change to the default settings is made.

v 1.5.0 (10/1/2016)[github.com]
Auto-Update Support
  • All future updates can be applied automatically after you confirm them

v 1.4.9 (9/27/2016)[github.com]
Special K v 0.6.14
  • Fixes alt+tab issues in fullscreen exclusive mode and may support Windows 7 again

v 1.4.8 (9/22/2016)[github.com]
Special K v 0.6.10
  • Improved global injector compatibility

v 1.4.7 (9/15/2016)[github.com]
Special K v 0.6.4
  • Includes Special K 0.6.4, which allows injection through a system-wide DLL that can be shared with all of my mods.

v 1.4.6 (8/31/2016)[github.com]
  • Includes Special K 0.5.0, which improves startup reliability with certain overlays

v 1.4.4 (8/16/2016)[github.com]
Improved Third-Party Support
  • Overhauled D3D9 hooking for compatibility with miscellaneous third-party software (e.g. overlays and video capture)

v 1.4.2 (8/8/2016)[github.com]
Texture Remastering Performance Optimization
  • Remastering (generation of missing mipmap LODs) does not increase load-time
  • Texture cache size has been increased and can be configured by the end-user now.

v 1.4.0 (6/12/2016)[github.com]
Texture Management Overhaul and Compatibility Layer
  • Major improvements to texture quality and performance
  • Enhanced compatibility with third-party software

v 1.3.0 (1/3/2016)[github.com]
Framerate and Texture Quality Tweaks and Keyboard Binding Enhancements
  • Too many technical changes to list here, see the GitHub release notes.

v 1.2.6 (12/28/2015)[github.com]
Anti-Virus Fix and Custom Button Support
  • Fixes an anti-virus false positive caused by memory optimization in 1.2.4
    • This was causing download problems with the .zip file on some systems
  • Adds support for custom buttons (custom_buttons.dds)
    • See the release notes for 1.2.5[github.com] for a more detailed discussion of this feature

v 1.2.3 (12/21/2015)[github.com]
Aspect Ratio Fixes and Framerate Limiter Compatibility Updates

  • Aspect Ratio

    • Subtitles are aspect ratio corrected
    • Fade-in/out effects (e.g. following battle) cover the ENTIRE screen at non-16:9 resolutions now.
    • Switching targets in battle does not force the game into blackbar mode, nor does opening a treasure chest.
    • The title screen is 100% aspect ratio correct now

  • Framerate Limiter

    • Corrects an issue in Fullscreen mode where repeatedly Alt+Tabbing may cause a deadlock.
    • Reverts NVIDIA framerate limiter to user-defined (0)
      • Set TargetFPS in d3d9.ini to 240 to disable NVIDIA's limiter
    • Adaptive Limiter is DISABLED by default in battle
      • Turn this on if you need it, but if you have a steady framerate input latency is slightly more predictable with it off.

v 1.2.0 (12/13/2015)[github.com]
Cutscene Fixes and D3D9 Compatibility Update
  • Fix for Priest Event in Lastonbell
    • [TZFIX.Lua] FixPriest=...
  • Framerate preferences for Field, Battle and Cutscenes
    • [TZFIX.FrameRate] Target (Field), BattleTarget (Battle), CutsceneTarget (Cutscenes)
    • Limiting Cutscenes to 30 FPS will eliminate visual glitches if they bother you.
  • Adaptive scaling for Battle (prevents slowdown when framerate changes)
    • [TZFIX.FrameRate] BattleAdaptive=...
  • Framebuffer Clearing for non-16:9 Screens is Optional
    • [TZFIX.Render] ClearBlackbars=...
  • Improved Signature Scanning
    • Gamestate and Aspect Ratio are "patch proof"
  • Removed Obsolete Options from tzfix.ini
  • Compatibility Fixes for D3D9 Hooking (GeDoSaTo + Steam Overlay + RTSS)

v 1.1.2 (12/6/2015)[github.com]
Signature Scanning and Custom Intro Video
  • Memory addresses for all 60 FPS related functionality are automatically located by TZFix.dll
    • Future patches will not require a new release.
  • The intro video can be set to ANY .bk2 file
    • See [TZFix.System] IntroVideo=... for more details

v 1.1.1 (12/5/2015)[github.com]
HOTFIX for Tales of Zestiria 1.4 Compatibility
  • Updated memory addresses for framerate related features
  • Updated memory address for FOVY and AspectRatio
  • Reverted to OLD D3D9 hooking system for compatibility with RTSS

v 1.1.0 (11/27/2015)[github.com]
In-Game Framerate Limit Selection
  • Hotkeys have been added that allow you to select the framerate limit in-game
    • See the release notes for more details
  • An updated version of Tales of Zestiria Tweak for this version of TZFix allows you to set the default framerate limit

v 1.0.1 (11/17/2015)[github.com]
Fixes timing issues in the game's stutter fix mechanism
  • The full GitHub release notes explain a lot of additional details -- please refer to them.

v 1.0.0 (11/15/2015)[github.com]
60 FPS is here!
DrDaxxy has authored a fix that brings us correct 60 FPS rendering
  • 60 FPS mode is the new default, as-per d3d9.ini
    • The setting for TargetFPS has been moved from [RSFN.System] to [Render.D3D9]

  • d3d9.dll has been overhauled to include many new features from my Fallout 4 stutter fix project:
    • VSYNC Override (presentation interval) was added
    • Triple Buffering Override was added
    • Pre-Rendered Frame Limit was added
      • A value of -1 for all of these things means "leave unchanged"

  • When an achievement is unlocked, a screenshot will be taken
    • This behavior can be disabled through [Steam.Achievements] TakeScreenshot=False

v 0.5.1 (11/8/2015)[github.com]
Shimmering is FIXED!
  • Fixes 512x256 post-processing effect that was causing massive shimmering
  • Adds option to significantly increase character shadow resolution
    • All thanks belong to Durante for figuring this out
  • Adds option to FORCE full mipmap chains on all loaded textures (slow)
  • Adds option to bypass code that disables the stutter fix in windowed mode on AMD GPUs
    • [TZFIX.FrameRate] AllowWindowedMode=True
  • HOTFIX: Correctly loads settings for RescaleShadows and PostProcessRatio from tzfix.ini
Please read the 0.5.0 release notes[github.com] for more details on configuring these new features

... (See this post for the complete history.)

v 0.1.2 (10/26/2015)[github.com]
Initial Public Release
  • Fixes distortion and crash issues related to speaker settings

Troubleshooting
If after installing this fix, problems persist or new ones are created, please paste the output of logs/tzfix.log, logs/d3d9.log and logs/audio.log, either in this thread or to pastebin.com so that I can debug the problem.

Source Code
Source code is available generally under the GPLv3 license and restriction free to BANDAI NAMCO Entertainment.
Last edited by Kaldaien; Oct 28 @ 3:48am
< >
Showing 1-15 of 4,176 comments
Kaldaien Oct 26, 2015 @ 7:51am 
I will start the discussion with a sample of what dsound.log is SUPPOSED to look like when the fix is working as intended:

10/25/2015 20:36:11.497: dsound.log created
10/25/2015 20:36:11.537: Loading Default dsound.dll: C:\WINDOWS\SysWOW64\dsound.dll... done!
10/25/2015 20:36:11.569: [!] DirectSoundCreate (00000000h, 7161AC48h, 00000000h) - [Calling Thread: 0x0628]
10/25/2015 20:36:11.635: [!] IDirectSound::GetSpeakerConfig (0C5F08F0h, 098DFF5Ch) - [Calling Thread: 0x0628]
10/25/2015 20:36:11.635: Calling original function: (ret=S_OK)

10/25/2015 20:36:11.635: IDirectSound::GetSpeakerConfig (...) : Reporting 7.1 system as 5.1

10/25/2015 20:36:11.635: [!] IDirectSound::SetSpeakerConfig (0C5F08F0h, 00000009h) - [Calling Thread: 0x0628]
10/25/2015 20:36:11.635: Calling original function: (ret=S_OK)

10/25/2015 20:36:28.248: >> IMMDevice Activating IAudioSessionManager2 Interface (new_session = true)
10/25/2015 20:36:28.253: >> IMMDevice Activating IAudioSessionManager2 Interface (new_session = true)
10/25/2015 20:36:29.956: >> IMMDevice Activating IAudioClient Interface
10/25/2015 20:36:29.956: [!] IAudioClient::GetMixFormat (0B953438h)
10/25/2015 20:36:29.956: >> Overriding - Using Device Format rather than Mix Format <<
10/25/2015 20:36:29.956: Extensible WAVEFORMAT Found...
10/25/2015 20:36:29.956: 8 Channels, 192000 Samples Per Sec, 32 Bits Per Sample (24 Actual)
10/25/2015 20:36:29.956: Format: Unknown
10/25/2015 20:36:29.956: Speaker Geometry: FrontLeft FrontRight FrontCenter LowFrequencyEmitter BackLeft BackRight SideLeft SideRight
10/25/2015 20:36:29.956: ** Downmixing from 8 channels to 6
10/25/2015 20:36:29.956: ** Resampling Audiostream from 192000 Hz to 44100 Hz
10/25/2015 20:36:29.956: [!] IAudioClient::Initialize (...)
10/25/2015 20:36:29.956: {Share Mode: 0 - Stream Flags: 0x40000}
10/25/2015 20:36:29.956: >> Channels: 6, Samples Per Sec: 44100, Bits Per Sample: 32

10/25/2015 20:36:29.959: Result: 0x77770000 (The operation completed successfully.)

10/25/2015 20:36:46.397: [!] DirectSoundCreate (00000000h, 71C2F088h, 00000000h) - [Calling Thread: 0x09b8]
10/25/2015 20:36:46.397: @ Short-Circuiting and returning previous IDirectSound interface.
10/25/2015 20:36:46.398: >> IMMDevice Activating IAudioClient Interface
...
10/25/2015 20:36:46.399: [!] IAudioClient::GetMixFormat (318BB810h)
10/25/2015 20:36:46.399: [!] DirectSoundCreate (00000000h, 71C2F088h, 00000000h) - [Calling Thread: 0x09b8]
10/25/2015 20:36:46.400: @ Short-Circuiting and returning previous IDirectSound interface.
10/25/2015 20:36:46.400: >> IMMDevice Activating IAudioClient Interface
10/25/2015 20:36:46.400: [!] IAudioClient::GetMixFormat (318BBB80h)
...
10/25/2015 20:36:46.403: [!] DirectSoundCreate (00000000h, 71C2F088h, 00000000h) - [Calling Thread: 0x09b8]
10/25/2015 20:36:46.403: @ Short-Circuiting and returning previous IDirectSound interface.
10/25/2015 20:36:46.403: >> IMMDevice Activating IAudioClient Interface
10/25/2015 20:36:46.404: [!] IAudioClient::GetMixFormat (31D97838h)
...
10/25/2015 20:36:46.429: [!] IAudioClient::Initialize (...)
10/25/2015 20:36:46.430: {Share Mode: 0 - Stream Flags: 0x40000}
10/25/2015 20:36:46.430: >> Channels: 8, Samples Per Sec: 192000, Bits Per Sample: 32

10/25/2015 20:36:46.432: Result: 0x77770000 (The operation completed successfully.)

10/25/2015 20:36:46.432: >> IMMDevice Activating IAudioClient Interface
10/25/2015 20:36:46.432: [!] IAudioClient::GetMixFormat (31D99048h)
...
10/25/2015 20:36:46.444: [!] IAudioClient::Initialize (...)
10/25/2015 20:36:46.444: {Share Mode: 0 - Stream Flags: 0x40000}
10/25/2015 20:36:46.444: >> Channels: 8, Samples Per Sec: 192000, Bits Per Sample: 32

10/25/2015 20:36:46.446: Result: 0x77770000 (The operation completed successfully.)

The sample-rate and channel overrides are only necessary on a case-by-case basis. Bink, the middleware that plays videos for this game, can operate just fine with the sound card's native format. This is why you see the override happen one time --- this is how it is designed to work. DirectSound interfaces don't need the override, the game's internal mixing engine does.
Last edited by Kaldaien; Oct 26, 2015 @ 7:54am
Cal.React Oct 26, 2015 @ 1:25pm 
Thanks! It's working for me. You really are the best haha. Now I can finally play the game with my setup :3 And the best part is that the voices work in the surround setting too!
Last edited by Cal.React; Oct 26, 2015 @ 1:25pm
Dagda Oct 26, 2015 @ 2:27pm 
how can i use two d3d9.dll files at the same time?, i'm currently using a d3d9.dll in order to use reshade/masterffect, if i put your dll i can fix the audio but i loose all my graphic tweaks that i've made in reshade, :'(
Kaldaien Oct 26, 2015 @ 2:30pm 
Originally posted by Final Rockmer:
how can i use two d3d9.dll files at the same time?, i'm currently using a d3d9.dll in order to use reshade/masterffect, if i put your dll i can fix the audio but i loose all my graphic tweaks that i've made in reshade, :'(

Edit d3d9.ini like so (add these lines to the top of the ini):

[Import.Reshade]
Architecture=Win32
Role=dxgi
When=Early
Filename=ReShade32.dll

Rename Reshade's DLL to ReShade32.dll of course :)
Last edited by Kaldaien; Oct 26, 2015 @ 2:32pm
Ryuma~ Oct 26, 2015 @ 2:31pm 
I can change to 8 channels?
Kaldaien Oct 26, 2015 @ 2:31pm 
Originally posted by Ryuma~:
I can change to 8 channels?

No, 8 channels will crash the game. That's the entire reason this exists is to change 8 to 6.
Ryuma~ Oct 26, 2015 @ 2:38pm 
Thanks! I setup to 5.1 and worked perfectly!
Last edited by Ryuma~; Oct 26, 2015 @ 2:41pm
Hertzila Oct 26, 2015 @ 2:41pm 
Just to be clear, the config file's sample rate is generally independent of the hardware's configured sample rate? Eg, even if the audio hardware is configured to (say) 48.0 kHz, the standard configuration of 44.1 kHz should work just fine, yes?

Could you go crazy with it and set the config's sample rate to 22.05 kHz and the hardware's to 96.0 kHz, or the other way around, without issues? At least in theory?
Last edited by Hertzila; Oct 26, 2015 @ 2:41pm
Kaldaien Oct 26, 2015 @ 2:45pm 
Originally posted by Hertzila:
Just to be clear, the config file's sample rate is generally independent of the hardware's configured sample rate? Eg, even if the audio hardware is configured to (say) 48.0 kHz, the standard configuration of 44.1 kHz should work just fine, yes?

Could you go crazy with it and set the config's sample rate to 22.05 kHz and the hardware's to 96.0 kHz, or the other way around, without issues? At least in theory?

You can go below the sample rate of 44.1 kHz without issues. But if you go far above it, the distortion problems kick back in. The DLL will resample the audio at whatever rate you tell it to, but ideally you want the rate the game uses internally (44.1 kHz) to match the DLL's sample rate so that the only resampling happens in the driver at the very end when it does digital to analog conversion.

There are no issues if you set your hardware's sample rate to 192 kHz and the DLL's sample rate to 44.1 kHz though, I should point out. That's part of the reason the DLL exists. I don't like changing from 24/192 to 16/44.1 every time I start this game :P The DLL takes care of all the signal and format negotiation for you.
Last edited by Kaldaien; Oct 26, 2015 @ 2:51pm
Hertzila Oct 26, 2015 @ 3:24pm 
Originally posted by Kaldaien:
There are no issues if you set your hardware's sample rate to 192 kHz and the DLL's sample rate to 44.1 kHz though, I should point out. That's part of the reason the DLL exists. I don't like changing from 24/192 to 16/44.1 every time I start this game :P The DLL takes care of all the signal and format negotiation for you.

Thank you, that's what I was asking about. That wasn't explicitly stated, so I thought I'd ask.

The fix also seems to occasionally crash on startup, right after the screen goes black and the custom cursor appears.
Dsound Crash Log:

10/27/2015 00:08:44.860: dsound.log created
10/27/2015 00:08:44.875: Loading Default dsound.dll: C:\Windows\SysWOW64\dsound.dll... done!
10/27/2015 00:08:44.876: [!] DirectSoundCreate (00000000h, 56D6AC48h, 00000000h) - [Calling Thread: 0x2190]
10/27/2015 00:08:44.888: >> IMMDevice Activating IAudioClient Interface
10/27/2015 00:08:44.888: [!] IAudioClient::GetMixFormat (06EE9E58h)
10/27/2015 00:08:44.892: >> IMMDevice Activating IAudioClient Interface
10/27/2015 00:08:44.892: [!] IAudioClient::GetMixFormat (06ED9700h)
10/27/2015 00:08:44.893: >> IMMDevice Activating IAudioClient Interface
10/27/2015 00:08:44.893: [!] IAudioClient::GetMixFormat (06ED9700h)
10/27/2015 00:08:44.893: [!] IDirectSound::GetSpeakerConfig (052F0A58h, 099BFF64h) - [Calling Thread: 0x2190]
10/27/2015 00:08:44.893: Calling original function: 10/27/2015 00:08:44.893: >> IMMDevice Activating IAudioClient Interface
10/27/2015 00:08:44.893: [!] IAudioClient::GetMixFormat (06ED9700h)
(ret=S_OK)

10/27/2015 00:08:44.893: [!] IDirectSound::SetSpeakerConfig (052F0A58h, 00140004h) - [Calling Thread: 0x2190]
10/27/2015 00:08:44.893: Calling original function: (ret=S_OK)

10/27/2015 00:08:53.762: >> IMMDevice Activating IAudioSessionManager2 Interface (new_session = true)
10/27/2015 00:08:53.764: >> IMMDevice Activating IAudioSessionManager2 Interface (new_session = true)
10/27/2015 00:08:54.994: >> IMMDevice Activating IAudioClient Interface
10/27/2015 00:08:55.002: [!] IAudioClient::GetMixFormat (0BD3E5A8h)
10/27/2015 00:08:55.002: >> Overriding - Using Device Format rather than Mix Format <<
10/27/2015 00:08:55.002: Extensible WAVEFORMAT Found...
10/27/2015 00:08:55.002: 2 Channels, 48000 Samples Per Sec, 32 Bits Per Sample (24 Actual)
10/27/2015 00:08:55.002: Format: Unknown
10/27/2015 00:08:55.002: Speaker Geometry: FrontLeft FrontRight
10/27/2015 00:08:55.002: ** Resampling Audiostream from 48000 Hz to 44100 Hz
10/27/2015 00:08:55.002: [!] IAudioClient::Initialize (...)
10/27/2015 00:08:55.002: {Share Mode: 0 - Stream Flags: 0x40000}
10/27/2015 00:08:55.002: >> Channels: 2, Samples Per Sec: 44100, Bits Per Sample: 32

When it works, seems to work just fine.
Kaldaien Oct 26, 2015 @ 3:25pm 
Yeah, I have the same problem right now. The game randomly crashes at startup if a gamepad is hooked up. I don't know if it's related for you, but I'm trying to debug that right now.
Kaldaien Oct 26, 2015 @ 3:26pm 
I'm a little curious why you are running this when your hardware is already 2 channel though?
Hertzila Oct 26, 2015 @ 3:39pm 
Originally posted by Kaldaien:
Yeah, I have the same problem right now. The game randomly crashes at startup if a gamepad is hooked up. I don't know if it's related for you, but I'm trying to debug that right now.

Could be coincidental, but I also have a gamepad plugged in, so most likely it's the same problem.

Originally posted by Kaldaien:
I'm a little curious why you are running this when your hardware is already 2 channel though?

Originally posted by Kaldaien:
Problem Description
...or when sample rates greater than 44.1 kHz are selected. ... and incorrectly set sample rate causes audio distortion (hissing and popping).

Simply put, sample rate issues. I'm not running my hardware at any massive sample rate, but I'm fairly certain I've heard hissing sounds even with the small 3.9 kHz difference. Could simply be placebo, but I didn't notice any when testing this fix, so I think that's working as intended. Thanks for that.
Last edited by Hertzila; Oct 26, 2015 @ 3:41pm
Kaldaien Oct 26, 2015 @ 3:45pm 
Oh, okay :) Yeah, the distortion problem is bad. I didn't think people were running into that on regular 2 channel setups though. My system only supports 192 kHz because I have it hooked up to a fancy pants 7.1 channel A/V receiver. Otherwise, I think it'd cap out at 44.1 kHz if I used my display's built-in speakers :)
Dagda Oct 26, 2015 @ 5:21pm 
Originally posted by Kaldaien:
Originally posted by Final Rockmer:
how can i use two d3d9.dll files at the same time?, i'm currently using a d3d9.dll in order to use reshade/masterffect, if i put your dll i can fix the audio but i loose all my graphic tweaks that i've made in reshade, :'(

Edit d3d9.ini like so (add these lines to the top of the ini):

[Import.Reshade]
Architecture=Win32
Role=dxgi
When=Early
Filename=ReShade32.dll

Rename Reshade's DLL to ReShade32.dll of course :)

you a true hero
< >
Showing 1-15 of 4,176 comments
Per page: 15 30 50