User:Suicide machine/Research bunker

From PCGamingWiki, the wiki about fixing PC games
For science!

So, you've found my research bunker and you wonder what's that? Well, it's basically a page, where I put all the information from games, I've researched, if I consider, they are not enough to grant a full page or if I simply don't have an English version of the game. Here you can also find a few failed experiments of mine (like games, which exe files, I've tried hex editing to run at widescreen, but found no adresses etc.). Basically - a long page, with a lot of cramped information. Also, if there is FOV mentioned in a text, there is a fair chance, source code can be found at my GitHub.

Remember to notify me about any issues related to my programs as soon as possible. A lot of an issues with them, is related to pointers pointing to different addresses on other machines (I only have my old trusty PC to test it) and can be easily solved.

Contents

Notes

Windows 7 updates not worth installing

  • KB2670838 - often causes BSODs
  • KB971033 - Stupid DRM update :P

Golden values

Sometimes you overlook simple things. I certainly did. So here's something I learnt thanks to Dredd widscreen hack.

  • Aspect ratio of 4:3 - 1.3 is float 1.3333334 = 0xABAAAA3F as stored in files.
  • Typical FOV values stored in files:
    • 75 - 0x00009642
    • 90 - 0x0000B442
    • 91.300003 - 0x9A99B642

Steam

Cloud syncing

  • Based on few simple test of Ultimate Doom and informations taken from SteamDB it's very clear to me, that any game released on Steam can feature cloud syncing, as the Steam version of Doom is using non-modified version of DosBOX and the only rule that seem to work for cloud syncing is - when Dosbox process stops running, Steam looks for *.DSG files in base folder and sends newest ones to cloud space...
  • In short: Any old game released on Steam has no excuse, when it comes to not using cloud saves, as no modified exe files are required.

GameOverlayUI launch parameters

All of this was extracted from gameoverlayui.dll.
Paramemter Description
-pid <id> Pid that we should be watching for
-manuallyclearframes 0/1 Should the overlay be manually clearing frames to black (because the game doesn't clear the entire screen?)
-enablemovies 0/1 Should prototype movie code be enabled.

Steam Controller


007: Quantum of Solace

30fps cap and FOV changing

I made FOV changer and FPS unlocker for cracked version. It's available here (hopefully it works on original version as well). Code is available in a Github repository.

Known issues with high framerate

Even though the game is using Infinity Ward Engine (same as COD4), it doesn't seem to handle high framerate anywhere as well as other games on this engine. Here are some known issues:

  • Balancing minigame may be much harder or near impossible at high framerate. It's the most obvious element of a game that seems to be tied to framerate - because of that, I added a simple cheat to a program as a workaround it.
  • Dying when escaping from elevator - occasionally in the level Science Center Interior a bug may happen, which makes it impossible to escape from elevator shaft, before the fire. I had this happen only once, but I know some other people also mentioned it. If this happen, try to lower the framerate to 30 and see if this helps.

Ace Combat: Assault Horizon - Enhanced Edition

Controller issues

  • Despite my attempts, I was not able to replicate the issues with controllers and/or keyboard, where a game behaves like one button would be constantly pressed down.

Afterfall: InSanity

Cheats?

Health seems to be stored in

  • "InSanity-Win32-Shipping.exe"+003094EC +70 +40 +1e0 +2f0

So screw this game.

Airfix Dogfighter

Widescreen resolution

  • They can be set in a launcher. Screen change vert-, HUD elements get smaller the wider the resolution. No other problems noticed.

Alekhine's Gun

Editing configs

Aliens vs. Predator 2

Custom Launcher for AVP2.
Custom Launcher for AVP2.

Custom Launcher (FOV Changer / Widescreen Fixer etc)

I've developed an alternative launcher for AVP2, which automatically calculates FOV (and writes them into memory), that allows to choose non 4:3 resolutions (tied to FOV changer), easily enable windowed mode etc. You can download it here.

Aliens vs. Predator (2010)

FOV changer

The FOV Changer is uses 12 pointers (6 for DX11 and 6 for DX9). Because I couldn't figure out a way to make it work correctly each time, I added criteria which a value read value has to meet in order to be used (has to be higher than ~0.1 and smaller than ~171 horizontal degrees). This hopefully should make the FOV changer work correctly on all levels. Hopefully... Code is available in a Github repository.

Arsenal: Taste the Power

Widescreen resolution

  • I've managed to locate where in exe file resolutions are stored (the game has hardcoded 3 resolutions - 640x480, 800x600, 1024x768).
  • Changing 1024x768 to widescreen one resulted in a game crashing. Changing it to 640x480 resulted in a game properly switching to 640x480, when selecting 1024x768 from options - this leads to the conclusion, it's impossible to run this game in a widescreen mode.
  • Oddly enough, screen's width is also stored in ARSENAL.CFG in the first 2 bytes.

Aquanox

Widescreen resolution

Here's currently completely stupid way of getting a game running in widescreen mode with proper aspect ratio. Requires CheatEngine:

[ENABLE]
//scalesFOV, cause aspect ratio scaling is vert-
alloc(fovscaling,2048)
label(returnfromfov)
label(exitfovscaling)

fovscaling:
push eax
movd xmm0,eax
mov eax,3FAAAAAB
movd xmm1,eax
pop eax
mulss xmm0,xmm1
movd [ecx+0C],xmm0
mov [ecx+10],edx

exitfovscaling:
jmp returnfromfov

"Aqua.exe"+149CB1:
jmp fovscaling
nop
returnfromfov:

//Fixes aspect ratio
alloc(aspectratio,2048)
label(returnfromaspect)
label(exitaspect)

aspectratio:
repe movsd
push edi
sub edi,C
push edi
movd xmm0,[edi]
mov edi,3FAAAAAB
movd xmm1,edi
mulss xmm0,xmm1
pop edi
movd [edi],xmm0
pop edi
mov ecx,[Aqua.exe+26D100]

exitaspect:
jmp returnfromaspect

"Aqua.exe"+44874:
jmp aspectratio
nop
nop
nop
returnfromaspect:

[DISABLE]
dealloc(fovscaling)
"Aqua.exe"+149CB1:
mov [ecx+0C],eax
mov [ecx+10],edx

dealloc(aspectratio)
"Aqua.exe"+44874:
repe movsd
mov ecx,[Aqua.exe+26D100]

Probably will only work with Steam version. Getting a proper aspect ratio in 1.17 is easier. Just find 1.333333 in exe file.

Claw

Analysis

As it's pretty normal - installer is 16bit so it doesn't work on 64bit systems. Thankfully, that's not a big problem, as it mostly copies files from CD to Harddrive for the most part. The only tricky part are - as usual - registry entries. Below are required registry entries, prepared to be imported to 64bit OS registry (6432Node) and a file structure:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Monolith Productions\Claw]

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Monolith Productions\Claw\1.0]
"User Name"="Kowalsky"
"User Location"="Home"
"User Email"="none"
"WorkingDirectory"="D:\\Claw"
D:\Claw\CLAW.CNT
D:\Claw\CLAW.EXE
D:\Claw\CLAW.HLP
D:\Claw\CLAW.REZ
D:\Claw\CLAW.URL
D:\Claw\CLAW.USR
D:\Claw\CUSTOM
D:\Claw\DeIsL1.isu          //installer file, used for uninstalling
D:\Claw\MONOLITH.URL
D:\Claw\MSS32.DLL
D:\Claw\README.TXT
D:\Claw\SMACKW32.DLL
D:\Claw\CUSTOM\GOBLE1.WWD
D:\Claw\CUSTOM\GOBLE2.WWD
D:\Claw\CUSTOM\GOBLE3.WWD
D:\Claw\CUSTOM\POWER1.WWD
D:\Claw\CUSTOM\PULTZ1.WWD
D:\Claw\CUSTOM\PULTZ2.WWD
D:\Claw\CUSTOM\SCORPIO1.WWD
D:\Claw\CUSTOM\SCORPIO2.WWD
D:\Claw\CUSTOM\SCORPIO3.WWD
D:\Claw\CUSTOM\SHADE4.WWD
D:\Claw\CUSTOM\TRC1.WWD
D:\Claw\CUSTOM\TRC1_NE.WWD
D:\Claw\CUSTOM\TRC2.WWD
D:\Claw\CUSTOM\TRC2_NE.WWD
D:\Claw\CUSTOM\TRC3.WWD
D:\Claw\CUSTOM\TRC3_NE.WWD

The biggest pain however is the CD thing. The game/installer doesn't create any reference to a CD from which it was installed from, instead it automatically assumes that a CD that's suppose to be used is a first CD possible (the one with a lowest letter).

This issue seems to however been resolved with 1.3 patch.

Croc: Legend of the Gobbos

Widescreen resolution

  • Launcher allows to select widescreen resolutions, when using D3D renderer. Everything is stretched (updated WSGF page).

Dead Reefs

Widescreen resolution

  • Resolutions seem to be stored near 0x00002B49 - changing them caused the game to start in a proper widescreen resolution, but then the game switched to old one anyway (based on game's log file). I was not able to identify, where the change comes from.

Deadly Dozen

Widescreen resolution

  • Menu is always rendered at 640x480 (or 800x600? - didn't check).
  • Resolutions in polish version are stored at 0x0002ED9A. Look for a sequence80020000BBE0010000EB4EBF20030000BB58020000EB42BF00040000BB0003. Scaling however seems to be weird. HUD is scaled perfectly, however it's that horizonal and vertical fovs are not scaled equally or that FOV overall is scalled too much.
  • There is also some problem, with settings apparently being (sometimes?) stored in save file, which results in game crashing, when trying to quit right after saving.

Deus Ex: The Fall

Field of View (FOV)

  • FOV Changer. Source-code is available in a Github repository.

Gorky 17

Widescreen resolution

  • The game is hardcoded to run at 640x480. I haven't found addresses, where resolution is stored in hex editing (it still might be stored there somewhere, but values are most likely extremely separated) (more than like 32 bytes).

Wrappers

  • They are useless, when it comes to this game. Most likely DXGL is going to be first, which will work with it (crash is most likely related to most DirectDraw/Direct3D wrappers lacking instructions for 3d rendering).

Problems

  • Yes, plenty and pretty much no fixes found. I'm surprised how such a technological garbage managed to found its way to GOG and Steam.

Hellforces

Config structure

My piece on config structure of the game can be found here.

Console commands

god
disable_ai
noclip
gravity
phizik
pers_move_check
pers_move
shadows
smooth_shadows
wave_trace
addtool
speed
newtrace
movie
bump
debug
portals
lod
wire
hudenable
vshaders
fps
drawpersons
objshadows
calcsmoke
checksmoke
drawsmoke
drawstatic
ps
person_bump_dist
obj_bump_dist
selfshade
trimesh
nakmodel
ragdoll
contacts
enabled
persons
mover

Hype: The Time Quest

Widescreen resolution

  • Seems to be hardcoded at 640x480. I managed to found one resolution stored at 000052E6 (Polish EXE, may have a different location), but at best it can be used to raise the resolution to 800x600. There is also a something what looks like a renderer resolution stored at 00067E91 as it's possible to increase it, but it won't scale the window.

Alternative installer

  • Having stumbled upon the source code of Alternative Installer for Lego Racers, I've taken steps to modify it to use it for Hype: The Time Quest. Installer is available in here.
  • Installer will only work with English, German and Polish versions of the game. For other versions, I'll need either a CD image or at least the name of localization folder. Keep in mind, selecting a wrong language version will result in an installer throwing an error during installation that a location can not be found (for Polish CD use Polish, for English CD use English etc.).
  • Installer has built in compatibility fixes and nGlide 1.03. It needs some testing! Especially with the fact, that in order to launch a game, installer needs to copy files to %WINDIR%\Ubisoft, which may cause problems with people using UAC.

Infernal

Few console commands

These commands were obtaining by extracting and decompiling global_debug.luc file.

Properties with //= function(...) mean that they should be invoked with specified parameters.

Most important - chgfeelattr("Space", "Name", 1, 0, 0) - seems to be disabled

updlst
spy //= function(l_7_0, l_7_1, l_7_2)
chgfeelattr //= function(l_8_0, l_8_1, l_8_2, l_8_3, l_8_4)
chgvarattr //= function(l_9_0, l_9_1, l_9_2, l_9_3)
fsm //= function(l_10_0) - performs chgvarattr("gGame.RenderDebugMode", RDM_FSM, RDM_STANDARD, l_10_0)
sc //gConsole:Show()
hc //gConsole:Hide()
ds //= function(l_13_0) - performs gDebug:EnableStats(l_13_0, false)
es //= function(l_14_0) - performs gDebug:EnableStats(l_14_0, true)
quit //gDebug:Quit()
poe //= function(l_16_0) - performs chgvarattr("gDebug.PauseOnError", true, false, l_16_0)
inv //basically toggles p.Invulnerable
invs //toggle p.Invisible
loff //performs gDebug:SetNRAFlag(NRA_LIGHTS, false)
lon //performs gDebug:SetNRAFlag(NRA_LIGHTS, true)
on //= function(l_21_0) - performs chgfeelattr("Game debug", "Display_description", 3, 0, l_21_0)
cn //= function(l_22_0) - performs chgfeelattr("Game debug", "Display_description", 4, 0, l_22_0)
dn //= function(l_23_0) - performs chgfeelattr("Game debug", "Display_description", 5, 0, l_23_0)
gcr //= function(l_24_0) - performs chgfeelattr("Game debug", "Report_LUA_gc_stats", 1, 0, l_24_0)
fl //= function(l_25_0) - performs chgfeelattr("Game debug", "Force_freelook", 1, 0, l_25_0)
rt //performs gTextureManager:ReloadAllTextures()
gc //= function(l_27_0) - performs chgfeelattr("Engine", "LUA_gc_call_interval", igDefaultGCInterval, 0, l_27_0)
db //= function(l_28_0) - performs chgvarattr("gDebug.AllowDebugTexts", true, false, l_28_0)
r //performs reload() and inv()
wire //= function(l_30_0) - performs chgfeelattr("Rendering", "Force_wireframe", 1, 0, l_30_0) - seems to be disabled
d //= function(l_31_0) - Editor.Debug(l_31_0)
gd //= function(l_32_0)- if not l_32_0 then Editor.Properties("f Game debug") else Editor.Properties("f " .. l_32_0)
renderStats
phStats
perfStats
luaStats
setSpeed //= function(l_37_0) - performs gGlobalTimer:SetTimeMultiplier(gGame.CurrentFrameTime, l_37_0)
enOnOff //toggles disable enemies
enemyCount
setres //= function(l_41_0)
FSE //Toggles gGame:FullScreenEffectsDisabled()
BC //toggles Display_collision_boxes
Profile //Toggles Display_Novodex_ProfileData
PhysX //Toggles Display_physics_collision
FluidCheckResults
Paths //Toggle Display_paths
PhysHardware //Toggles Display_hardware_registered_objects
BB //Toggles Display_bounding_boxes
IM //Toggles Mouse inversion
PH //Toggles Display_physics_assets
LENS //Toggles Display_lens_flares
TimeStep //= function(l_53_0)
GlowPasses //= function(l_54_0)
GetT //= function()
Wtp
KillAll
KillEnemies
DeleteCorpses
DisableAll
SO //toggles Display_Selected_object
ListVisibleObjects
ListCharacters
ListActiveBodies
DeleteActiveBodies
RemoveAllJoints
TeleportAllTestboxes
DeleteAllTestboxes
RemoveAllTestboxes
InitSpecialDolls
RemoveAllCharacters
EnableAll
GhostModeAll
Time
E3DemoEnd
LuaMem
OpenDoor
IsBaseObject //= function(l_79_0)
IterateTable //= function(l_80_0, l_80_1, l_80_2)
IterateObject //= function(l_81_0, l_81_1, l_81_2)
IterateAll //= function(l_82_0)

Legendary

Field of view (FOV)

I made FOV Changer for it. Source-code is available in a Github repository.

Marine Sharpshooter 2

Passing command line parameters from Steam

  • The launcher in PC version is completely redundant, mostly because of the form the game is now distributed (previously, it made sense to have a button for uninstall the game etc.). What's worse, it doesn't pass command line parameters and doesn't have a field to input them. Because of that, I've written a simple program that takes command line parameters and send them to LithTech.exe (which is the executable for game), to replace it. It's available in here. And no, I'm not going to write a custom launcher for it. It's already enough, I wrote these few lines.

Medal of Honor (2010)

Field of view (FOV)

FOV changer can be downloaded in here. Source-code is available in a Github repository.

Shade: Wrath of Angels

Console command properties

EFF_MBLUR
EFF_UNDERWATER
EFF_NONE
EP_ACTIVE_PARTICLES
EP_CURRENT_TIME
EP_REPEAT
EP_EFFECT_TIME
EP_POINT_SPRITES
EP_ANIM_ONCE
EP_LIFETIME_BY_ANIM
EP_LIFETIME_RND
EP_LIFETIME
EP_BIRTH_RATE_RND
EP_BIRTH_RATE
EP_KILL_OLDEST
EP_GRAVITY_SCALE_RND
EP_GRAVITY_SCALE
EP_AIR_RESISTANCE_RND
EP_AIR_RESISTANCE
EP_RANDOM_ROT
EP_RANDOM_ANGLE
EP_STRETCH
EP_SIZE
EP_AVELOCITY
EP_VELOCITY_RND
EP_VELOCITY
EP_CONEANGLE
BC_ALLCONVEX
BC_SPHERE
BC_CONVEX
BC_CAPSULE_Z
BC_CAPSULE_Y
BC_CAPSULE_X
BC_OBB
BC_NONE
TSWITCH_TRANSP
TSWITCH_USER4
TSWITCH_USER3
TSWITCH_USER2
TSWITCH_USER1
FF_ALLINSIDE
FF_MESH
FF_PATCH
FF_PLANAR
SS_NOCULL
SS_NOOUTLINE
SS_ONCE
SS_TRANSP
SS_WIREFRAME
SS_DOUBLESIDE
SS_NOZUPDATE
SS_NOZBUFFER
SHAPE_POLY
SHAPE_LINE
SHAPE_BBOX
NULL  //just a name for a value?
false //just a name for a value?
true //just a name for a value?
ROLL
YAW
PITCH
FILEMODE_READ
FILEMODE_WRITE
C_LEAF
C_TRANSLUCENT
C_STRUCTURAL
C_DETAIL
C_CLUSTERPORTAL
C_MONSTERCLIP
C_NOCLIMB
C_PLAYERCLIP
C_AREAPORTAL
C_CAMERACLIP
C_PIVOT
C_FOG
C_WATER
C_SLIME
C_LAVA
C_SOLID
SURF_WATER
SURF_GRASS
SURF_CARPET
SURF_BETON
SURF_GRAVEL
SURF_GLASS
SURF_METAL
SURF_WOOD
SURF_DUST
SURF_FLESH
SURF_NOMARKS
SURF_NOIMPACT
SURF_LADDER
SURF_SKY
SURF_SLICK
LFL_BACKFACE
LFL_SHADOWSOURCE
LFL_TRACE
LFL_DYNAMIC
LFL_POINT
LFL_SPOT
AF_CHANGEMASK
AF_BLENDOUT
AF_FORCEFPS
AF_RESET
AF_USER
AF_ONCE
SF_GLOBAL
SF_LIPSYNC
SF_NOTEST
SF_MUSIC
SF_FREQCONTROL
SF_QUARTERRANGE
SF_HALFRANGE
SF_FLUSH
SF_STREAM
SF_3D
SF_AMBIENT
SF_ONCE
EV_ALL
EV_LIPSYNC
EV_LOADED
EV_SOUNDEND
EV_ANIMBLEND
EV_ANIMHOOK
EV_ANIMEND
EV_ONSAVE
EV_ONLOAD
EV_TIMER
EV_ENDFRAME
EV_BEGINFRAME
EV_AFTERPHYSICS
EV_BEFOREPHYSICS
EV_POSTTHINK
EV_FRAME
EV_VIEW
EV_VISFRAME
EV_INIT
EV_EXTRA
EV_ONGROUND
EV_BLOCK
EV_TOUCH
NONE
NOCLIP
PUSH
BOUNCE
FLY
WALK
PWALK
GIB
LIGHT
WORLD
TRIGGER
CAMERA
PLAYER
MONSTER
DEFAULT
TFL_EXACTLIGHT
TFL_OBBCOLLISION
TFL_EXACTCOLLISION
TFL_USER6
TFL_USER2
TFL_USER1
TFL_NOSAVE
TFL_NOSHADOW
TFL_DISABLE
TFL_NOLIGHT
TFL_UPDATE
TFL_ROTMATRIX
TFL_FULLMATRIX
TFL_PARTICLE
TFL_ONCELINK
TFL_NOMPIVOT
TFL_NOBILLBOARD
TFL_PASSABLE
TFL_TOUCHTRIGGERS
TFL_ONGROUND
TFL_AREACLOSED
TFL_AREASPLITTER
TFL_TRIGGER
TFL_COLLIDEONLYWORLD
TFL_DEF
TFL_SOLID
TFL_VISIBLE
TFL_CANCELMOVE
VP_ISPLAYING
VP_REPEAT
VP_POSITION
VP_REWIND
VP_STOP
VP_PLAY
WFLAG_STRETCH
WFLAG_RALIGN
WFLAG_NOFILTER
WFLAG_EXACTSIZE
WFLAG_EXACTPOS
WFLAG_VCENTER
WFLAG_CENTER
WFLAG_ZWRITE
WFLAG_NOWRAP
WFLAG_VISIBLE
WFLAG_TRANSPARENT
WFLAG_SOURCEALPHA
WFLAG_SRCTRANS
WTYPE_VIDEO
WTYPE_IMAGE
WTYPE_VIEW
WTYPE_TEXT
TRACE_WATER
TRACE_PASSABLE
TRACE_WORLD
TRACE_ENTS
TRACE_VISTEST
TRACE_DETAIL
TRACE_MESH
TRACE_PATCH
TRACE_EXACT
g_iForceSWDevice
g_iPPQuality
g_iPhysicsIteration
_depth
g_iStatFPS
g_iStatNumParticles
g_iStatNumVertexes
g_iStatNumTriangles
g_iShowFilter
g_iShowAABB
g_iShowPhysics
g_iOutputRate
g_bEAX
g_iSpeakers
g_iSoundQuality
g_iEffectsVolume
g_iMusicVolume
g_fDopplerFactor
JoyPOV
JoyButtons
JoySliders
JoyRAxis
JoyAxis
MouseWheel
MouseDeltaY
MouseDeltaX
MMB
RMB
LMB
g_iTraceBone
g_iTraceSphere
g_iTraceSurfaceType
g_iTraceBrush
g_iTraceSurfparm
g_iTraceContent
g_vTracePlane
g_iDecalFrame
g_fDecalAlpha
g_iLightSource
g_fSunIntensity
g_vSunColor
g_vSunDirection
g_iIsOutdoor
g_iViewFrame
g_vMainMatrix2
g_fVisDist
g_fovy
g_fov
ftime
time
g_iDepthComplex
g_iWire
g_iStats
g_iDisablePhysics
g_iBrightness
g_iShadow
g_iGeomDetail
g_iDetailMap
g_iVSync
g_iDither
g_iTriBuffer
g_iTriFilter
g_iTexDepth
g_iZBuffDepth
g_iAdapter
g_iDepth
g_iHeight
g_iWidth
g_iFullscreen
g_sVideoModes
g_env
g_bump
g_lod

Star Trek: The Next Generation - Klingon Honor Guard

Player speed / performance

High framerate will make the game play too fast. Here are statistics to prove it, tested using modified LiveSplit (component starts time and splits based on player position), with a check of 62 times a second (enough to check differences).
Player speed / performance

Star Wars: Rogue Squadron 3D

Widescreen resolution

  • Menu is always rendered at 640x480.
  • Resolutions are stored in ROGUE SQUADRON.EXE at 0x00201D5C (v. 1.00 - look for 80020000E001000005000000200300005802000006000000000400000003000007000000000500000004). Changing them to widescreen resolutions makes the game stretched.


Star Wars: The Phantom Menace

Alternative installer

  • It seems, I've been wrong all this time. It looks like BIG.Z on the game's CD isn't some kind of a split or encrypted file, but it's just simply a big.lab, compressed with some unknown compression. If a program capable of extracting it was found (preferably, using command line), I could probably make an installer for it the game, just like I've made one for Hype. Alternatively, I could just pack big.lab into an installer, but that would be distributing a part of the game :|

Stunt GP

Widescreen resolution

  • Launcher allows to select only 4:3 resolutions. Widescreen resolution however can be set when editing game.cfg.
  • Changing DISPLAYRESWIDTH and DISPLAYRESHEIGHT results in a game being stretched.
  • To fix it, you need to change aspect ratio value in game's exe file.
    • Find a sequence: 80BC000000BE9FAA3FC780C00000000000803F
    • Replace BE9FAA3F with a new aspect ratio as a float value.
    • Remember to invert the byte order.
  • Alternatively you can use my fixer.
Comparison of normal and fixed aspect ratio

Syndicate (2012)

Developer Mode

  • There is a developer mode hidden in the game. Probably the safest way to enable it (ergo - a way that doesn't include programs of unknown origin) is via CheatEngine. Add address 00400000 to a list and enable debugger using Find what accesses this value option.

S.T.A.L.K.E.R.: Shadow of Chernobyl

Field of View (FOV)

  • As there was no clear way explained on how to modify the FOV, I compared both modified and unmodified xrGame.dll in GOG release - the FOV is stored at: 0x0053C598 as a float value.

Ultimate Spider-Man

FPS

While, it's true this game is capped at 30fps, it's not always the case. Basically everything runs capped at 30fps, side from... first loading (which is capped at 45fps) and options menu and exit confirmation window (both capped at 60fps). Sadly, this doesn't seem to make unlocking framerate, easier :|

Wolfenstein: The New Order

Speeding up the game on lower end PCs

vt_maxPPF 4
vt_maxPhysicalPRTPages 2048
vt_pageimagesizevmtr 1024
vt_pageImageSizeUnique 1024
vt_pageImageSizeUniqueDiffuseOnly 512
vt_pageImageSizeUniqueDiffuseOnly2 1024
cvarAdd r_skipGodRays 1
cvarAdd r_skipSubSurfaceScattering 1
cvarAdd r_skipShadows 1

For really desperate people:

cvarAdd r_zfar 2500