Selamlar, hoş geldiniz. GTA camiasının modlara olan sevgisini bilirsiniz. Bu rehberde, en sevdiğim GTA oyunu olan GTA IV'ü modlamayı ve bu modlarla birlikte oyunu günümüze göre modernleştirmeyi göstereceğim. Pek fazla mod kuramıyorsunuz zaten, olanlarla yetineceğiz.

Hem oyunu bozabildiği ve bazı optimizasyon sorunlarına yol açabildiği için hem de yükleyeceğimiz FusionFix ve DXVK ile uyuşmadığı için, ENB gibi grafik modları kullanamayacağız. Biz sadece ekstra özelliklerle, GTA IV'ü modernleştirmeye çalışacağız.
gtaiv.gif
Her şeyden önce şunu demeliyim ki; Rockstar Games, modculardan nefret eden bir şirkettir. Bunu, oyunlarına yapılan modlara telif atmalarından anlayabilirsiniz.
Bu yüzden GTA IV'ün son sürümü olan Complete Edition sürümüne mod kurmanız pek işe yaramıyor, yarasa bile ya oyununuzu bozuyor ya da verimli çalışmıyor.
Bu nedenle modlamadan önce ilk yapmanız şey, oyunu downgrade etmektir. Downgrade rehberime bu bağlantıdan ulaşabilirsiniz.
Oyun modlarının en iyi çalıştığı sürüm 1.0.7.0 sürümü. Bu yüzden 1.0.7.0'a düşürmenizi tavsiye ederim.
Ek olarak sakın Türkçe yama kurmayın. Türkçe yama kayıt dosyanızı bozuyor. Eğer kayıt dosyanızı oyunu sildikten sonra yeniden kullanmak isterseniz, çalışmayacaktır.

Oyunu downgrade ettiyseniz, modlamaya başlayabilirsiniz. 1.0.7.0 sürümü için ihtiyacınız olan materyaller aşağıdaki gibi. Bunların hepsini zaten downgrader üzerinden indirebiliyorsunuz. Yine de eksik dosyaları kontrol etmeniz veya isterseniz yeniden yüklemeniz için linkleri bırakıyorum. İçeriklerini de parantez içine yazıyorum ki yanlış bir şey indirmeyin.
  • ASI Loader (xlive.dll)
  • C++ ScriptHook (scripthook.dll)
  • IV-SDK.NET (IVSDKDotNet isimli klasör, IVSDKDotNet.asi, IVSDKDotNetWrapper.dll, IVSDKDotNetWrapper.xml)​
Bunlar olmadan mod yükleyemezsiniz. Şimdi de, oyuna yükleyeceğimiz modları göstereyim. Modların her birini, üstüne tıklayarak indirebilirsiniz.
Bu linkler, 1.0.7.0 sürümü için. İnternette arattığınızda, FusionFix ve Project2DFX'in GitHub sayfalarının sadece CE için olduğunu göreceksiniz.
ColAccel, yükleme sürelerini kısaltarak oyuna daha hızlı girmenizi sağlıyor.

FusionFix; bazı grafik hatalarını düzeltip, borderless, FPS limiti ve ara sahne düzeltmeleri gibi birçok özellik ekliyor.
1739987413485.webp
1739987427002.webp


Liberty Tweaks; oyuna bir sürü yenilik ekliyor ve birkaç hatayı düzeltiyor. Örnek verecek olursam;
  • Açık dünyada dolaşırken -yani görevde değilken- hızlı kayıt özelliği ekliyor.
  • Güvercin öldürdüğünüz ve rampa atlayışı yaptığınız an, oyununuz kaydoluyor.
  • GTA V'teki gibi, kişisel araçlarınız olabiliyor.
  • NPC'lerin silah havuzunu genişletiyor.
  • Polislerin yapay zekasını daha akıllı hale getiriyor.
  • NPC'lerin trafikte sizi sollamasını engelliyor.
  • Çatışma esnasında Niko'nun, Johnny'nin ve Luis'in bazı replikler söylemesini sağlıyor.
  • Arabadan atladığınızda, tekerleklerin dönmesini sağlıyor.
  • Silahlara geri tepme ekliyor.
  • Mafia 1'deki gibi, silahların şarjörünü değiştirdiğinizde, içindeki mermileri de atıyor.
Bu özelliklerin hepsini, LibertyTweaks.ini dosyasından düzenleyebiliyorsunuz. Yani bu özelliklerin hepsi isteğe bağlılar. Tüm özellikler bununla da kalmıyor zaten. Detaylı bilgi için modun sayfasına yukarıdaki bağlantıdan ulaşabilirsiniz.

Project2DFX, detay seviyesini ve ışıklandırmayı arttırıyor. Böylece şehir daha canlı ve modern görünüyor. Soldaki resimde, Project2DFX açıkken, sağdakinde kapalı.
Project2DFX açık
1739988359119.webp


ZolikaPatch, FPS'iniz yüksekken ara sahnelerdeki zoomu kaldırıyor, yükleme sürelerini hızlandırıyor, SMPA60 hatalarını düzeltiyor ve oyunun açılmasını geciktiren Social Club belasından kurtarıyor.

DXVK, oyunu Vulkan API'ında çalıştırıyor ve bir yandan FPS'inizi artırıyorken, diğer yandan optimizasyonu olabilecek en üst seviyeye getiriyor.

Gelelim bu modları nasıl kuracağımıza.
Uzantısı;
  • .asi olan dosyaları, ASI Loader'ın okuyabilmesi için oyunun ana dizinine atıyorsunuz. GTAIV.exe'nin olduğu yere.
  • .net.dll olan dosyaları, ana dizindeki scripts klasörüne atıyorsunuz. Eğer scripts klasörü yoksa, oluşturun.
  • .ivsdk.dll olan dosyaları, IVSDKDotNet klasörünün içindeki scripts klasörüne atıyorsunuz.

Optimizasyon
DXVK'yı indirdikten sonra, x32 klasörünün içindeki d3d9.dll dosyasını, oyunun ana dizinine atın. Daha sonra bir metin belgesi oluşturun ve içine spoilerdaki metni yapıştırın. Kaydedip ismini dxvk.conf yapın. Uzantısının .conf olduğuna dikkat edin.
Kod:
# Device filter. Only exposes devices whose Vulkan device name contains
# the given string. May be useful to force an application to run on a
# specific GPU, but not applications launched by that application.

# dxvk.deviceFilter = ""


# Expose the HDR10 ColorSpace (DXGI_COLOR_SPACE_RGB_FULL_G2084_NONE_P2020)
# to the application by default.
# This shows to the game that the global Windows 'HDR Mode' is enabled.
# Many (broken) games will need this to be set to consider exposing HDR output
# as determine it based on the DXGIOutput's current ColorSpace instead of
# using CheckColorSpaceSupport.
# This defaults to the value of the DXVK_HDR environment variable.
#
# Supported values: True, False

# dxgi.enableHDR = True


# Allows the Vulkan driver to opt-in to exclusive full-screen mode on
# Windows. Certain features, such as variable refresh rate or HDR, will
# not work without this setting, however enabling it will break certain
# games that use additional GDI windows, and it will also break alt+tab.
#
# This setting has no effect on non-Windows platforms.
#
# Supported values: True, False

# dxvk.allowFse = False


# Enables Unreal Engine 4 HDR workarounds for games that do not follow
# the standard -Win64-Shipping.exe naming scheme. May be needed to avoid
# crashes in D3D11 games on HDR-enabled systems due to statically linked
# AMDAGS.
#
# Supported values: True, False

# dxgi.enableUe4Workarounds = False


# Create the VkSurface on the first call to IDXGISwapChain::Present,
# rather than when creating the swap chain. Some games that start
# rendering with a different graphics API may require this option,
# or otherwise the window may stay black.
#
# Supported values: True, False

# dxgi.deferSurfaceCreation = False
# d3d9.deferSurfaceCreation = False


# Enforce a stricter maximum frame latency. Overrides the application
# setting specified by calling IDXGIDevice::SetMaximumFrameLatency.
# Setting this to 0 will have no effect.
#
# Supported values : 0 - 16

# dxgi.maxFrameLatency = 0
# d3d9.maxFrameLatency = 0


# Enables frame rate limiter. The main purpose of this is to work around
# bugs in games that have physics or other simulation tied to their frame
# rate, but do not provide their own limiter.
#
# Supported values
# -1: Always disables the limiter
#  0: Default behaviour. Limits the frame rate to the selected display
#     refresh rate when vertical synchronization is enabled if the
#     actual display mode does not match the game's one.
#  n: Limit to n frames per second.

# dxgi.maxFrameRate = 0
# d3d9.maxFrameRate = 0


# Controls latency sleep and Nvidia Reflex support.
#
# Supported values:
# - Auto: By default, DXVK only supports latency sleep in D3D11 games that
#         use Reflex if the graphics driver supports VK_NV_low_latency2,
#         and if dxvk-nvapi is enabled in Proton.
# - True: Enables built-in latency reduction based on internal timings.
#         This assumes that input sampling for any given frame happens after
#         the D3D9 or DXGI Present call returns; games that render and present
#         asynchronously will not behave as intended.
#         Similarly, this will not have any effect in games with built-in frame
#         rate limiters, or if an external limiter (such as MangoHud) is used.
#         In some games, enabling this may reduce performance or lead to less
#         consistent frame pacing.
#         The implementation will either use VK_NV_low_latency2 if supported
#         by the driver, or a custom algorithm.
# - False: Disable Reflex support as well as built-in latency reduction.
 
# dxvk.latencySleep = Auto


# Tolerance for the latency sleep heuristic, in microseconds. Higher values
# increase latency, but may lead to better frame pacing in some cases. Does
# not have any effect if NV_low_latency2 is used.
#
# Supported values: Any non-negative number

# dxvk.latencyTolerance = 1000


# Disables the use of VK_NV_low_latency2. This will make Reflex unavailable
# in games, and if dxvk.latencySleep is set to True, a custom algorithm will
# be used for latency control. By default, the extension will not be used in
# 32-bit applications due to driver issues.
#
# Supported values: Auto, True, False

# dxvk.disableNvLowLatency2 = Auto


# Override PCI vendor and device IDs reported to the application. Can
# cause the app to adjust behaviour depending on the selected values.
#
# Supported values: Any four-digit hex number.

# dxgi.customDeviceId = 0000
# dxgi.customVendorId = 0000

# d3d9.customDeviceId = 0000
# d3d9.customVendorId = 0000


# Override the reported device description
#
# Supported values: Any string.

# dxgi.customDeviceDesc = ""
# d3d9.customDeviceDesc = ""


# Report Nvidia GPUs as AMD GPUs. Unless NVAPI support is explicitly
# enabled through Proton, this is done by default in order to work
# around crashes or low performance with Nvidia-speciic code paths
# in games, especially Unreal Engine.
#
# Supported values: Auto, True, False

# dxgi.hideNvidiaGpu = Auto


# Report Nvidia GPUs running on NVK as AMD GPUs.
#
# Supported values: Auto, True, False

# dxgi.hideNvkGpu = Auto


# Report AMD GPUs as Nvidia GPUs. This is only done for games that are
# known to have issues with AMDAGS or other AMD-specific code paths.
#
# Supported values: Auto, True, False

# dxgi.hideAmdGpu = Auto


# Report Intel GPUs as AMD GPUs. This is only done for games that are
# known to have issues with Intel-specific libraries such as XESS.
#
# Supported values: Auto, True, False

# dxgi.hideIntelGpu = Auto


# Override maximum amount of device memory and shared system memory
# reported to the application. This may fix texture streaming issues
# in games that do not support cards with large amounts of VRAM.
# This is not a hard cap and applications can choose to ignore it.
#
# Supported values: Any number in Megabytes.

# dxgi.maxDeviceMemory = 0
# dxgi.maxSharedMemory = 0


# Overrides synchronization interval (Vsync) for presentation.
# Setting this to 0 disables vertical synchronization entirely.
# A positive value 'n' will enable Vsync and repeat the same
# image n times, and a negative value will have no effect.
#
# Supported values: Any non-negative number

# dxgi.syncInterval = -1
# d3d9.presentInterval = -1


# Controls tearing behaviour with regards to in-game Vsync settings.
#
# True enables the mailbox present mode in case regular Vsync is disabled.
# This eliminates tearing, but may be unsupported on some systems.
#
# False enables the relaxed fifo present mode in case regular Vsync is enabled.
# This should result in tearing but reduce stutter if FPS are too low,
# but may be unsupported on some systems.
#
# Please do not report issues with this option.
#
# Supported values: Auto, True, False

# dxvk.tearFree = Auto


# Assume that command lists created from deferred contexts are only used
# once. This is extremely common and may improve performance while reducing
# the amount of memory wasted if games keep their command list objects alive
# for too long, but may also lead to rendering issues if command lists are
# submitted multiple times.
#
# Supported values: True, False

# d3d11.dcSingleUseMode = True


# Override the maximum feature level that a D3D11 device can be created
# with. Setting this to a higher value may allow some applications to run
# that would otherwise fail to create a D3D11 device.
#
# Supported values: 9_1, 9_2, 9_3, 10_0, 10_1, 11_0, 11_1, 12_0, 12_1

# d3d11.maxFeatureLevel = 12_1


# Overrides the maximum allowed tessellation factor. This can be used to
# improve performance in titles which overuse tessellation.
#
# Supported values: Any number between 8 and 64

# d3d11.maxTessFactor = 0


# Enables relaxed pipeline barriers around UAV writes.
#
# This may improve performance in some games, but may also introduce
# rendering issues. Please don't report bugs with the option enabled.
#
# Supported values: True, False

# d3d11.relaxedBarriers = False


# Ignores barriers around UAV writes from fragment shaders.
#
# This may improve performance in some games, but may also introduce
# rendering issues. Please don't report bugs with the option enabled.
#
# Supported values: True, False

# d3d11.ignoreGraphicsBarriers = False


# Overrides anisotropic filtering for all samplers. Set this to a positive
# value to enable AF for all samplers in the game, or to 0 in order to
# disable AF entirely. Negative values will have no effect.
#
# Supported values: Any number between 0 and 16

# d3d11.samplerAnisotropy = -1
# d3d9.samplerAnisotropy = -1


# Changes the mipmap LOD bias for all samplers. The given number will be
# added to the LOD bias provided by the application, rather than replacing
# it entirely. Positive values will reduce texture detail, while negative
# values may increase sharpness at the cost of shimmer.
#
# Supported values: Any number between -2.0 and 1.0

# d3d11.samplerLodBias = 0.0
# d3d9.samplerLodBias = 0.0


# Clamps any negative LOD bias to 0. Applies after samplerLodBias has been
# applied. May help with games that use a high negative LOD bias by default.
#
# Supported values: True, False

# d3d11.clampNegativeLodBias = False
# d3d9.clampNegativeLodBias = False


# Declares vertex positions as invariant in order to solve
# potential Z-fighting issues at a small performance cost.
#
# Supported values: True, False

# d3d11.invariantPosition = True
# d3d9.invariantPosition = True


# Forces per-sample rate shading when MSAA is enabled, rather than per-pixel
# shading. May improve visual clarity at a significant performance cost, but
# may also introduce visual issues in some games.
#
# Supported values: True, False

# d3d11.forceSampleRateShading = False
# d3d9.forceSampleRateShading = False


# Forces the sample count of all textures to 1, and performs
# the needed fixups in resolve operations and shaders.
#
# Supported values: True, False

# d3d11.disableMsaa = False


# Clears workgroup memory in compute shaders to zero. Some games don't do
# this and rely on undefined behaviour. Enabling may reduce performance.
#
# Supported values: True, False

# d3d11.zeroWorkgroupMemory = False


# Clears mapped memory to zero when suballocated memory is freed. This will
# drastically increase CPU overhead and should only be used as a last resort
# if a game does not properly initialize mapped buffers on its own.
#
# Supported values: True, False

# dxvk.zeroMappedMemory = False


# Allocates dynamic resources with the given set of bind flags in
# cached system memory rather than uncached memory or host-visible
# VRAM, in order to allow fast readback from the CPU. This is only
# useful for buggy applications, and may reduce GPU-bound performance.
#
# Supported values: Any combination of the following:
# - v: Vertex buffers
# - i: Index buffers
# - c: Constant buffers
# - r: Shader resources
# - a: All dynamic resources

# d3d11.cachedDynamicResources = ""


# Force-enables the D3D11 context lock via the ID3D10Multithread
# interface. This may be useful to debug race conditions.
#
# Supported values: True, False

# d3d11.enableContextLock = False


# Exposes or hides support for driver command lists
#
# Some games use the feature flag to decide whether to use deferred
# contexts or not. We enable this by default, but in some situations
# this can lead to issues if games detect an AMD GPU where command
# lists are not natively supported on Windows.
#
# Supported values: True, False

# d3d11.exposeDriverCommandLists = True


# Reproducible Command Stream
#
# Ensure that for the same D3D commands the output VK commands
# don't change between runs. Useful for comparative benchmarking,
# can negatively affect performance and can break some games
# that don't use queries correctly.
#
# Supported values:
# - True/False

# d3d11.reproducibleCommandStream = False
# d3d9.reproducibleCommandStream = False


# Sets number of pipeline compiler threads.
#
# If the graphics pipeline library feature is enabled, the given
# number of threads will be used for shader compilation. Some of
# these threads will be reserved for high-priority work.
#
# Supported values:
# - 0 to use all available CPU cores
# - any positive number to enforce the thread count

# dxvk.numCompilerThreads = 0


# Toggles raw SSBO usage.
#
# Uses storage buffers to implement raw and structured buffer
# views. Enabled by default on hardware which has a storage
# buffer offset alignment requirement of 4 Bytes (e.g. AMD).
# Enabling this may improve performance, but is not safe on
# hardware with higher alignment requirements.
#
# Supported values:
# - Auto: Don't change the default
# - True, False: Always enable / disable

# dxvk.useRawSsbo = Auto


# Controls graphics pipeline library behaviour
#
# Can be used to change VK_EXT_graphics_pipeline_library usage for
# debugging purpose. Doing so will likely result in increased stutter
# or degraded performance.
#
# Supported values:
# - Auto: Enable if supported, and compile optimized pipelines in the background
# - True: Enable if supported, but do not compile optimized pipelines
# - False: Always disable the feature

# dxvk.enableGraphicsPipelineLibrary = Auto


# Controls pipeline lifetime tracking
#
# If enabled, pipeline libraries will be freed aggressively in order
# save memory and address space. Has no effect if graphics pipeline
# libraries are not supported or disabled.
#
# Supported values:
# - Auto: Enable tracking for 32-bit applications only
# - True: Always enable tracking
# - False: Always disable tracking

# dxvk.trackPipelineLifetime = Auto


# Controls memory defragmentation
#
# By default, DXVK will try to defragment video memory if there is a
# significant amount of memory wasted, or if the allocation budget of
# the application is exceeded. This option is provided solely for
# debug purposes.
#
# Supported values:
# - True: Enable defragmentation
# - Auto: Enable defragmentation, except on blocked drivers
# - False: Disable defragmentation

# dxvk.enableMemoryDefrag = Auto


# Sets enabled HUD elements
#
# Behaves like the DXVK_HUD environment variable if the
# environment variable is not set, otherwise it will be
# ignored. The syntax is identical.

# dxvk.hud =


# Reported shader model
#
# The shader model to state that we support in the device
# capabilities that the applicatation queries.
#
# Supported values:
# - 0: Fixed-function only
# - 1: Shader Model 1
# - 2: Shader Model 2
# - 3: Shader Model 3

# d3d9.shaderModel = 3


# DPI Awareness
#
# Decides whether we should call SetProcessDPIAware on device
# creation. Helps avoid upscaling blur in modern Windows on
# Hi-DPI screens/devices.
#
# Supported values:
# - True, False: Always enable / disable

# d3d9.dpiAware = True


# Strict Constant Copies
#
# Decides whether we should always copy defined constants to
# the UBO when relative addressing is used, or only when the
# relative addressing starts a defined constant.
#
# Supported values:
# - True, False: Always enable / disable

# d3d9.strictConstantCopies = False


# Strict Pow
#
# Decides whether we have an opSelect for handling pow(0,0) = 0
# otherwise it becomes undefined.
#
# Supported values:
# - True, False: Always enable / disable

# d3d9.strictPow = True


# Lenient Clear
#
# Decides whether or not we fastpath clear anyway if we are close enough to
# clearing a full render target.
#
# Supported values:
# - True, False: Always enable / disable

# d3d9.lenientClear = False


# Max available memory
#
# Changes the max initial value used in tracking and GetAvailableTextureMem
# Value in Megabytes
#
# Supported values:
# - Max Available Memory: Any int32_t
# - Memory Tracking Testing: True, False

# d3d9.maxAvailableMemory = 4096
# d3d9.memoryTrackTest = False


# Force enable/disable floating point quirk emulation
#
# Force toggle anything * 0 emulation
# Setting it to True will use a faster but less accurate approach that works for most games.
# Supported values:
# - True: Use a faster but less accurate approach. Good enough for most games
# - False: Disable float emulation completely
# - Strict: Use a slower but more correct approach. Necessary for some games
# - Auto: DXVK will pick automatically

# d3d9.floatEmulation = Auto


# Overrides the application's MSAA level on the swapchain
#
# Supported values: -1 (application) and 0 to 16 (user override)

# d3d9.forceSwapchainMSAA = -1


# Device Local Constant Buffers
#
# Enables using device local, host accessible memory for constant buffers in D3D9.
# This tends to actually be slower for some reason on AMD,
# and the exact same performance on NVIDIA.
#
# Supported values:
# - True/False

# d3d9.deviceLocalConstantBuffers = False

# Support DF formats
#
# Support the vendor extension DF floating point depth formats on AMD and Intel.
# Note that this config is ignored and disabled by default on Nvidia, or when
# spoofing a Nvidia GPU, as it does not support these formats natively.
#
# Supported values:
# - True/False

# d3d9.supportDFFormats = True

# Use D32f for D24
#
# Useful for reproducing AMD issues on other hw.
#
# Supported values:
# - True/False

# d3d9.useD32forD24 = False

# Support X4R4G4B4
#
# Support the X4R4G4B4 format.
# The Sims 2 is a very broken game.
#
# Supported values:
# - True/False

# d3d9.supportX4R4G4B4 = True

# Support D16_LOCKABLE
#
# Support the D16_LOCKABLE format.
# Always enabled on AMD, or when spoofing an AMD GPU
# via customVendorId, disabled by default on Nvidia and Intel.
#
# Supported values:
# - True/False

# d3d9.supportD16Lockable = False

# Disable A8 as a Render Target
#
# Disable support for A8 format render targets
# Once again, The Sims 2 is a very broken game.
#
# Supported values:
# - True/False

# d3d9.disableA8RT = False

# Support for VCache Query
#
# Support for the vcache query
# Not very important as a user config.
# Used internally.
#
# Supported values:
# - True/False

# Defaults to True if vendorId == 0x10de
# d3d9.supportVCache = True

# Force Sampler Type Spec Constants
#
# Useful if games use the wrong image and sampler
# type combo like Halo: CE or Spellforce.
# Can fix rendering in older, broken games in some instances.
#
# Supported values:
# - True/False

# d3d9.forceSamplerTypeSpecConstants = False

# Force Aspect Ratio
#
# Only exposes modes with a given aspect ratio.
# Useful for titles that break if they see ultra-wide.
#
# Supported values:
# - Any ratio, ie. "16:9", "4:3"

 d3d9.forceAspectRatio = "16:9"

# Enumerate by Displays
#
# Whether we should enumerate D3D9 adapters by display (windows behaviour)
# or by physical adapter.
# May be useful in PRIME setups.
#
# Supported values:
# - True/False

# d3d9.enumerateByDisplays = True

# Cached Dynamic Buffers
#
# Allocates dynamic resources in D3DPOOL_DEFAULT in
# cached system memory rather than uncached memory or host-visible
# VRAM, in order to allow fast readback from the CPU. This is only
# useful for buggy applications, and may reduce GPU-bound performance.
#
# Supported values:
# - True/False

# d3d9.cachedDynamicBuffers = False

# Seamless Cubes
#
# Don't use non seamless cube maps even if they are supported.
# Non seamless cubes are correct d3d9 behavior, but can produce worse looking edges.
#
# Supported values:
# - True/False

# d3d9.seamlessCubes = False

# Debug Utils
#
# Enables debug utils as this is off by default, this enables user annotations like BeginEvent()/EndEvent().
# Alternatively could be enabled with DXVK_DEBUG=markers environment variable.
#
# Supported values:
# - True/False

# dxvk.enableDebugUtils = False

# Memory limit for locked D3D9 textures
#
# How much virtual memory will be used for textures (in MB).
# 0 to disable the limit.
# THIS DOES NOT IMPACT ACTUAL MEMORY CONSUMPTION OR TEXTURE QUALITY.
# DO NOT CHANGE THIS UNLESS YOU HAVE A VERY GOOD REASON.

# d3d9.textureMemory = 100

# Hide integrated graphics from applications
#
# Only has an effect when dedicated GPUs are present on the system. It is
# not recommended to use this option at all unless absolutely necessary for
# a game to work; prefer using DXVK_FILTER_DEVICE_NAME whenever possible.
#
# Supported values:
# - True/False

# dxvk.hideIntegratedGraphics = False

# Trigger DEVICELOST when losing focus
#
# D3D9 requires the application to call Device::Reset after
# it loses focus in fullscreen.
# Some games rely on observing a D3DERR_DEVICELOST or D3DERR_NOTRESET.
# Others don't handle it correctly.
#
# Supported values:
# - True/False

# d3d9.deviceLossOnFocusLoss = False

# Reject Device::Reset if any losable resource is still alive
#
# D3D9 rejects Device::Reset if there's still any alive resources of specific types.
# (State blocks, additional swapchains, D3DPOOL_DEFAULT resources)
# Some games leak resources leading to a hang.
#
# Supported values:
# - True/False

# d3d9.countLosableResources = True
VRAM'inizi tamamen kullanması için, pc klasörünün içindeki stream.ini'yi açıp, içindeki tüm sayıları, VRAM'inizin megabayt türünden boyutu ile değiştirin ve yanına iki tane sıfır ekleyin.
Örneğin 8GB için 819200 yazmalısınız.

Şimdi ise commandline.txt dosyasını düzenleyeceğiz. Bu dosya, Steam'deki başlangıç seçenekleri ile aynı işlevi görüyor. Yüklediğimiz modlar gereği, bu dosyayı değiştirmeniz gerekiyor. Steam'in başlangıç seçenekleri işe yaramayabilir. Bu komutları aynen girin. Modlar için gerekliler.
Kod:
-availablevidmem -> VRAM'iniz ve yanına .0 Örneğin 8192.0
-nomemrestrict -> Bellek kısıtlamasını kaldırır.
-norestrictions -> Grafik ayarı sınırını kaldırır.
-reserve -> Diğer uygulamalar için ayrılacak RAM miktarı.
-forcer2vb -> Yüklenen modlar için gerekli.
-forcehighqualitymirrors -> Ayna kalitesini yükseğe zorlar.
-fullspecaudio -> Ses motorunun tam kapasitede çalışmasını sağlar. Böylece birkaç hatayı engeller.
-frameLimit 1 -> FPS'i 30'a sabitler. Modlarla FPS'i artırdığımız için, bunu yazdığınız zaman optimizasyonu artırıyorsunuz.
-managed -> D3D kaynaklarını kullanarak, kasmayı azaltır ve optimizasyon sağlar.
-reservedapp 0 -> Uygulama alanı içinde kullanılabilir bırakılacak bellek miktarını belirler. İzin verdiğiniz tüm belleği kullanmanızı sağlar.
-hz 100 -> Oyun içi hertzinizi ayarlar.
-windowed -> Oyunu pencereli modda çalıştırır. FusionFix ile çerçevesiz yapabilirsiniz.

Opsiyonel olarak size önerdiğim şey Lossless Scaling. Bu güzide program ile, GTA IV'e FSR ekleyerek, keskinleştirme, kare oluşturma ekleyerek biraz daha fazla FPS kazanabilirsiniz. Ben bu olmadan oynamıyorum açıkçası. Şimdi sorabilirsiniz, bu oyun pencereli veya çerçevesiz modda açılmıyor, nasıl kullanacağız diye.
Bunun için;
  • commandline.txt dosyasına -windowed komutunu ekliyoruz.
  • ZolikaPatch.ini dosyasındaki BorderlessWindowed=0 değerini 1 yapıyoruz.
  • GTAIV.EFLC.FusionFix.ini dosyasındaki BorderlessWindowed = 0 değerini 1 yapıyoruz.
Oyun artık çerçevesiz olarak çalışıyor.
Lossless Scaling ayarlarını ise bu şekilde yapmanızı öneririm. Bu şekilde yaptığınızda hem siyah çerçeveler olmuyor hem de cidden kayıpsız hatta biraz daha kaliteli bir görüntüyle daha fazla FPS alıyorsunuz.
  • Windows ayarlarına girin. Sistem, ekran, grafikler yolunu takip edin ve grafik ayarlarını değiştire girin. Buradan Donanım Hızlandırmalı GPU'yu etkinleştirin.
  • Lossless Scaling ayarlarından, yönetici olarak başlat seçeneğini açın ve Lossless Scaling'i yeniden başlatın.
  • NVIDIA kullanıyorsanız, 3D ayarlarını yönete girin. Program ayarlarından ekleye tıklayıp, Lossless Scaling'i ekleyin. En aşağı inip Vulkan/OpenGL Mevcut Yönetimi ayarını DXCI Swapchain Üzerinden Katmanlanmış Olarak Tercih Et olarak ayarlayın.
Lossless Scaling içinde;
  • Ölçekleme: Özel
  • Ölçekleme etkeni:1
  • Ölçekleme öncesi yeniden boyutlandır: Açık
  • Ölçekleme türü: FSR
  • Keskinlik: %100
  • Hafifletilmiş sürüm: Kapalı
  • Kare oluşturma: LSFG 3.0
  • Mod:X2
  • Çözünürlük ölçeği: %100
  • İmleci sınırla: Kapalı
  • İmleç hızını uyarla: Açık
  • İmleci gizle: Açık
  • İmleci ölçekle: Açık
  • Eşitleme modu: Kapalı
  • Azami kare gecikmesi: 1
  • Yakalama API: DXGI
Lossless Scaling'i Steam üzerinden satın alabilirsiniz.


Oyunu Modernleştiren Modlar
Modernleştirmek için birkaç modumuz var. Bu modları kurmak için ise OpenIV yazılımına ihtiyacımız var.
Liberty's Legacy, oyun içinde çeşitli hileler kullanabileceğiniz bir menü sağlıyor.
1739994087484.webp

Kurmak için, tüm dosyaları oyunun ana dizinine atın.

Customizable Niko, Better Wardrobe ve Liberty's Legacy'de kullanabileceğiniz yeni kıyafetler ekliyor ve varyasyonlarını kullanmanızı sağlıyor.
Modu kurmak için;
  • OpenIV'yi açın.
  • Common ve PC klasörlerini, GTA IV'ün ana dizinine atın.
  • Pedprops.img klasörünün içindekileri; pc-models-cdimages-pedprops.img'nin içine atın.

CG4 Radar, haritanızı değiştiriyor. Bu değişen haritada, sağ altta simgelerin açıklaması bulunuyor. Bölgelerin üstünde isimleri yazıyor. Güvercin ve rampalar belirtiliyor. Haritada olan tüm çelik yelek ve canların yerini gösterir. Kısacası oyundaki önemli yerlerin bilgisini verir.
12210_10.webp


Mod dosyası içinde istemediğiniz şeyleri de değiştiren dosyalar var.
  • blips.wtd dosyası, haritadaki simgeleri değiştiriyor.
  • frontend_360.wtd dosyası, haritanın zoomlanmamış halini değiştiriyor.
  • hud.dat, hud.wtd ve hudColor.dat dosyaları, HUD'ınızı değiştirir. Can barı rengi, çelik yelek barı rengi, radar tonlaması rengi gibi.
  • radar.img dosyası, radarınızı ve haritanın zoomlanmış halini değiştirir.
Ben bunlardan sadece radar.img, blips.wtd ve frontend_360.wtd'yi kullanıyorum. HUD rengimin değişmesini istemiyorum.
Modun nasıl kurulduğuna gelirsek, OpenIV'yi açıp;
  • blips.wtd ve frontend_360.wtd dosyasını, pc-textures yoluna atın.
  • hud.dat, hud.wat ve hudColor.dat dosyalarını, common-data yoluna atın.
  • radar.img dosyasını, pc-models-cdimages yoluna atın.

VStyle Kill Marker, birini öldürdüğünüz zaman kırmızı bir işaret ile öldüğünü anlamanızı sağlıyor. Tıpkı GTA V'teki gibi.
vsytle.gif


First Person modu, oyunu Niko'nun gözünden görmenizi sağlar.
12210_13.webp


Steam Achievements, oyunda kazandığınız başarımları, eğer Steam'den oynuyorsanız başarımları Steam üzerinden kazanmanızı sağlar.

Better Wardrobe modu, kıyafet değiştirebildiğiniz gardırobunuza daha fazla seçenek ekler.
12210_12.webp


Dot Crosshair modu, nişangâhınızı nokta yapar.
12210_15.webp


Bullet Penetration, normalde mermi geçirmesi gereken ancak geçirmeyen materyallerin, mermi-geçirir olmasını sağlar. Örneğin tahtalar, dükkan camları ve karton kutular.
Modu kurmak için;
  • Main Files klasöründeki common ve pc klasörlerini, oyunun ana dizinine atmanız yeterli.

Beaten & Bruised modu, yaralanmaları daha gerçekçi hale getirir.
  • Hafif yarası olanlar, kaçar veya çatışır.
  • Ağır yaralılar çatışmayı bırakır ve yavaş yavaş yarasını tutarak kaçmaya çalışır.
  • Ölmeyen ancak hareketsiz olanlar yani bilinçsiz NPC'ler ise kalkmaya çalışır ancak kalkamazlar.
  • Çatışmada ağır yaralanıp bilinci yerinde olanlar ise yerde sürünür.
Modu kurmak için;
  • OpenIV'yi açın.
  • Pc-anim yoluna girip, anim.img'yi açın.
  • Main Files klasörünün içindekileri anim.img'nin içine atın.

Simple Traffic Loader, sürekli aynı araçların çıkmasını ve NPC'lerin sizin aracınızı kopyalamasını engeller.

Son olarak, oyunu açtığınızda dokuların yüklenmeme sorunu olabilir. Oyundan çıkıp girdiğinizde düzelecektir.

Oyunu bozmadan en fazla bu kadar modernleştirebilirsiniz. GTA IV zaten zamanının ötesinde bir oyundu. Gerek grafikleriyle, gerek fizik motoruyla, gerek oynanışıyla. Biz bu adımlara, Rockstar'ın mahvettiği bu şaheseri bilgisayarda oynanabilir hale getirdik. Takıldığınız herhangi bir sorunda yazmaktan çekinmeyin.
 
Son düzenleme:
Oyunun ASI Loader kütüphanesi olarak hangi DLL dosyası kullanıyordunuz bu arada? GTA:SA'da dinput dosyasını değiştirince Linux için varsayılan okunmuyordu. Haliyle ekstra ayar gerekiyordu. Linux'de winecfg gerekmesin diye Vorbis dosyasını değiştirmiştim.
 
Grafik modu kurdum ben bayağı modern oldu, hatta bayağı zevkli.
Optimizasyonu, grafiğe tercih ederim.

Oyunun ASI Loader kütüphanesi olarak hangi DLL dosyası kullanıyordunuz bu arada? GTA:SA'da dinput dosyasını değiştirince Linux için varsayılan okunmuyordu. Haliyle ekstra ayar gerekiyordu. Linux'de winecfg gerekmesin diye Vorbis dosyasını değiştirmiştim.
Yukarıda yazdım. Sürüme göre değişiyor. 1.0.7.0 için xlive.dll kullanıyorum.
 
Debian tarafında test edeceğim. xlive.dll'ye oyunun kendisi başvuruyor diye tahmin ediyorum. O illet Windows Live olayı da vardı oyunda hatırladım. Muhtemelen Linux'de direk uyumlu olacak.
 
Son düzenleme: