Skip to content

Instantly share code, notes, and snippets.

@ddan9
Last active April 13, 2024 18:08
Show Gist options
  • Save ddan9/daa3c1d3bce0eb879cd711d144712206 to your computer and use it in GitHub Desktop.
Save ddan9/daa3c1d3bce0eb879cd711d144712206 to your computer and use it in GitHub Desktop.
VMWare Workstation additional .ini .vmx .bat config/settings/params/parameters/fixes/patches/hacks/tweaks/preferences/scripts for performance/gaming

DESCRIPTION

VMWare Workstation additional .ini .vmx .bat config/settings/params/parameters/fixes/patches/hacks/tweaks/preferences/scripts for performance/gaming


NOTES, IMPORTANT

n.s. - is for not sure

This gist will help you to build "Virtualized Wine" on Linux systems

Some of presented parameters are already included in config files by default. If you want just copypaste them you may cause file corruption (by doubling parameters that already exists). Therefore, proceed it with caution

If you know/have found other solutions or found a mistake you can notify me and I will review and add them

You can enter the required parameters to .ini config instead of .vmx to make them global for all VMs

If you are not sure whether you need a specific parameter or want to reset the value to the default, just comment it out with # in the config file

Note that if you set *.allowUnsupportedDrivers.* = TRUE and mks.vk.forceDevice parameters with mks.gamingMouse.policy = "gaming" it may cause LOWER in-guest picture/image/screen quality (with resolution downscaling) but RIGHT mouse processing WITHOUT performance dropping (on mouse moving, for example). BUT if you set vise-versa *.allowUnsupportedDrivers.* and mks.vk.forceDevice parameters with mks.gamingMouse.policy = "gaming" it may cause HIGHER in-guest picture/image/screen quality (with resolution downscaling) but WRONG mouse processing WITH performance dropping (on mouse moving, for example). BUT if you set mks.maxCompositingFPS it will fix performance dropping and picture/image/screen quality (with resolution downscaling) with *.allowUnsupportedDrivers.* = FALSE + mks.gamingMouse.policy = "gaming" parameters but cause screen flickering/blinking. You can also set mks.gamingMouse.policy = "absgaming" to fix performance dropping, but it may completely broke mouse processing for some apps/games. You need to manually test all these parameters with all possible values and choose the maximum compromise for you (for each game). I recommend to use TRUE + "gaming" values for FPS or online games and vise-versa for offline/racing/others

[ ! ]: Need to find a way to add custom screen resolution (for example 1600x900 bcs it's missing)

[ ! ]: Need to competently create a file with parameters for completely masking the VM. Check the camouflage operation on CS:S (v92, Source Engine) or in hardinfo through Linux


REFERENCES:


FILES:

###########################################################
# ALL ADDITIONAL RECOMMENDED .vmx CONFIG WITH DESCRIPTION #
###########################################################

### INSTALLER ###

# Enables automatic software update
# Possible values: TRUE, FALSE (FALSE is recommended)
installerDefaults.autoSoftwareUpdateEnabled = "FALSE"

# Enables component downloading
# Possible values: TRUE, FALSE (FALSE is recommended)
installerDefaults.componentDownloadEnabled = "FALSE"

# Enables data collection
# Possible values: TRUE, FALSE (FALSE is recommended)
installerDefaults.dataCollectionEnabled = "FALSE"

### GUI ###

# Applies host-to-guest DPI scaling (only in fullscreen mode, n.s.) (set it in VMWare global .ini config if it has no effects)
# Possible values: TRUE, FALSE (TRUE is recommended)
gui.applyHostDisplayScalingToGuest = "TRUE"

# Applies enabling fullscreen mode on poweron
# Possible values: TRUE, FALSE (TRUE is recommended)
gui.fullscreenatpoweron = "TRUE"

# Choses window mode on poweron. Same as above
# Possible values: "fullscreen", "windowed" ("fullscreen" is recommended)
gui.viewModeAtPowerOn = "fullscreen"

### PREF ###

# Applies auto fitting guest screen to host size window (with changing guest's resolution, n.s.) (set it in VMWare global .ini config if it has no effects)
# Possible values: TRUE, FALSE (FALSE is recommended)
pref.autoFit = "FALSE"

# Applies auto fitting guest-to-host screen, like above (with changing guest's resolution, n.s.) (set it in VMWare global .ini config if it has no effects)
# Possible values: TRUE, FALSE (FALSE is recommended)
pref.autoFitGuestToWindow = "FALSE"

# Applies auto fitting guest screen in fullscreen mode (without changing guest's resolution, n.s.) (set it in VMWare global .ini config if it has no effects)
# Possible values: "fitGuestToHost", "stretchGuestToHost", "fitHostToGuest", "none", "FALSE" ("stretchGuestToHost" is recommended)
pref.autoFitFullScreen = "stretchGuestToHost"

# Applies mouse grab motion
# Possible values: TRUE, FALSE (FALSE is recommended)
pref.motionGrab = "FALSE"

# Applies mouse ungrab motion
# Possible values: TRUE, FALSE (FALSE is recommended)
pref.motionUngrab = "FALSE"

# Sets automatic software update permission
# Possible values: "allow", "deny" ("deny" is recommended)
pref.autoSoftwareUpdatePermission = "deny"

# Enables data collection
# Possible values: TRUE, FALSE (FALSE is recommended)
pref.vmplayer.dataCollectionEnabled = "FALSE"

# Enables autohide toolbar in fullscreen mode
# Possible values: TRUE, FALSE (TRUE is recommended)
pref.vmplayer.fullscreen.autohide = "TRUE"

# Sets showed toolbar pixels. To shrink the size of the hidden toolbar, specify zero pixels. This will still keep a couple of pixels on top, so it's hardly noticeable
# Possible values: INTEGER (0 is recommended)
pref.fullscreen.toolbarpixels = "0"

# Allow to fully/completely hide toolbar in fullscreen mode
# Possible values: TRUE, FALSE (TRUE is recommended)
pref.vmplayer.fullscreen.nobar = "TRUE"

# Sets common action on VM exit
# Possible values: "poweroff", UNKNOWN ("poweroff is recommended")
pref.vmplayer.exit.vmAction = "poweroff"

# Sets toolbar device location (top/bottom)
# Possible values: TRUE, FALSE (TRUE is recommended)
pref.vmplayer.deviceBarToplevel = "TRUE"

### TOOLS ###

# Applies VMWare tools installation reminding if not installed
# Possible values: TRUE, FALSE (FALSE is recommended)
tools.remindInstall = "FALSE"

# Applies VMWare tools upgrading policy
# Possible values: "auto", "useglobal", "manual" ("manual" is recommended)
tools.upgrade.policy = "manual"

# Applies auto in-guest time synchronization
# Possible values: TRUE, FALSE (FALSE is recommended)
tools.syncTime = "FALSE"

# Disables VMWare shared host folders/files to guest
# Possible: TRUE, FALSE (TRUE is recommended)
isolation.tools.hgfs.disable = "TRUE"

# Enables VMWare shared host folders/files to guest event notifications (n.s.)
# Possible values: TRUE, FALSE (FALSE is recommended)
isolation.tools.hgfs.notify.enable = "FALSE"

# Applies access to direction above shared folder
# Possible values: TRUE, FALSE (FALSE is recommended)
hgfs.mapRootShare = "FALSE"

# Disables VMWare tools "OS not found" notification
# Possible values: TRUE, FALSE (TRUE is recommended) 
isolation.tools.osNotFound.disable = "TRUE"

# Disables VMWare tools logging
# Possible values: TRUE, FALSE (TRUE is recommended)
isolation.tools.log.disable = "TRUE"

# Disables VMWare tools updating
# Possible values: TRUE, FALSE (TRUE is recommended)
isolation.tools.updateTools.disable = "TRUE"

# Disables VMWare tools message
# Possible values: TRUE, FALSE (TRUE is recommended)
isolation.tools.message.disable = "TRUE"

### USB MOUSE/KEYBOARD ###

# Enables USB in-guest
# Possible values: TRUE, FALSE (TRUE is recommended)
usb.present = "TRUE"

# Enables host-to-guest USB devices passthrough
# Possible values: TRUE, FALSE (TRUE is recommended)
usb.generic.allowHID = "TRUE"

# Enables host-to-guest USB devices passthrough, like above (n.s.)
# Possible values: TRUE, FALSE (TRUE is recommended)
usb.generic.allowLastHID = "TRUE"

# Enables USB logger
# Possible values: TRUE, FALSE (FALSE is recommended)
usb.analyzer.enable = "FALSE"

# Allows bidirected (both) keyboard IRQs. May be useful for avoiding disfunction after a while, but may cause your Linux VM's input to hang if the guest tries to Sleep/Hibernate. May be useful for avoiding keyboard driver problems
# Possible values: TRUE, FALSE (FALSE is recommended)
keyboard.allowBothIRQs = "FALSE"

# Switches to the virtual USB keyboard from PS/2, but may make your key-repeat get stuck more often
# Possible values: TRUE, FALSE (TRUE is recommended)
keyboard.vusb.enable = "TRUE"

# Changes in-guest software keys autorepeat. May fix "buffering effect" by disabling
# Possible values: TRUE, FALSE (FALSE is recommended)
keyboard.softAutorepeat = "FALSE"

# May help in situations when typing into a remote console, you see unintended repeated keystrokes, and also normalize keyboard typing responsiveness. Opinions vary regarding the unit of measurement. Some people think it's in seconds (keyboard.typematicMinDelay = "10"), some people think it's in microseconds (keyboard.typematicMinDelay = "1000000"). I couldn't confirm any of them
# Possible values: INTEGER (5, 10, 20, 5000000, 10000000, 20000000)
keyboard.typematicMinDelay = "5"

# Making the host mouse pointer to follow the guest mouse pointer
# Possible values: TRUE, FALSE (FALSE is recommended)
vmmouse.present = "FALSE"

# Enables the virtual USB mouse, switches from PS/2. Enables raw HID mouse pass-thru so all buttons 
# Possible values: TRUE, FALSE (TRUE is recommended)
mouse.vusb.enable = "TRUE"

# Uses mouse basic VM mode. Using in couple with option above
# Possible values: TRUE, FALSE (FALSE is recommended)
mouse.vusb.useBasicMode = "FALSE"

# Enables touchscreen emulation
# Possible values: TRUE, FALSE (FALSE is recommended)
touchscreen.vusb.present = "FALSE"

# USB Passthrough on Linux Host. "Passthrough" mode was disabled on Linux host as it conflicted with shared mode provided via pcscd
# Possible values: TRUE, FALSE (TRUE is recommended)
usb.generic.allowCCID = "TRUE"

# Managing disabling CCID
# Possible values: TRUE, FALSE (TRUE is recommended)
usb.ccid.disable = "TRUE"

### MKS: MOUSE, KEYBOARD, SCREEN, 3D ###

# Turns VSync mode. May fix tearing effect by enabling. May affect interactivity
# Possible values: TRUE, FALSE (TRUE is recommended)
mks.vsync = "TRUE"

# Disable annoying in-guest beeps
# Possible values: TRUE, FALSE (TRUE is recommended)
mks.noBeep = "TRUE"

# Enables 3D acceleration support in VM guest
# Possible values: TRUE, FALSE (TRUE is recommended)
mks.enable3d = "TRUE"

# Sets max guest screen refresh/frequency/FPS limitation
# Possible values: INTEGER (Recommended is freq of your monitor)
mks.maxRefreshRate = "60"

# Sets minimal FPS for compositing. May improve interactivity
# Possible values: INTEGER (Recommended is freq of your monitor, 10 is default)
mks.lowCompositingFPS = "60"

# Sets maximum FPS for compositing. May improve interactivity. May cause screen flickering/blinking (raises to absolute af). Has problems with the "*.allowUnsupportedDrivers.*" parameters. Test before use (see more on the top)
# Possible values: FALSE, INTEGER (Recommended is freq of your monitor, 100 is default)
mks.maxCompositingFPS = "60"

# Enables skipping hook-timeout-check. May improve interactivity
# Possible values: TRUE, FALSE (TRUE is recommended, FALSE is default)
mks.skipHookTimeoutCheck = "TRUE"

# Sets coalensce update period in microseconds. May greatly reduce latency and improve interactivity by setting "0", but may cause overhead to host machine. Default is "16666" (16.666ms, 60Hz)
# Possible values: INTEGER (0 is recommended, 16666 is default)
mks.updateCoalescePeriodUS = "0"

# Sets requiring of hardware renderer. May improve interactivity
# Possible values: TRUE, FALSE (TRUE is recommended)
mks.requireHardwareRenderer = "TRUE"

# Allows accelerated renderers. May allow to switch backend hw-acc renderer and affect interactivity
# Possible values: TRUE, FALSE (TRUE is recommended)
mks.allowAcceleratedRenderers = "TRUE"

# Sets minimal frame delay in milliseconds (vdp is for "video decode and presentation", n.s.). May improve interactivity. USE WITH CAUTION
# Possible values: INTEGER (28 is default)
mks.vdpMinFrameDelayMS = "0"

# Sets win32 system .NET timer resolution. May affect interactivity with increasing but reduce overhead a little 
# Possible values: INTEGER (0 is default)
mks.win32.timerResolution = "500"

# Enables high quality sound on record VM
# Possible values: TRUE, FALSE (FALSE is recommended)
mks.movie.config.high.recordSound = "FALSE"

# Forces using of discrete GPU. Use it if you have more than 1 GPU
# Possible values: TRUE, FALSE (TRUE is recommended, FALSE is default)
mks.forceDiscreteGPU = "TRUE"

# Allows using Direct3D (D3D). May be unnecessary on Linux systems
# Possible values: TRUE, FALSE (TRUE is recommended)
mks.useD3D = "TRUE"

# Allow manual choosing of host GPU renderer. All parameters are mutually exclusive (i.e. only one can be used at a time). Use the one that best suits your host
# Possible values: TRUE, FALSE
mks.enableD3DRenderer = "FALSE"
mks.enableDX8Renderer = "FALSE"
mks.enableDX9Renderer = "FALSE"
mks.enableDX10Renderer = "FALSE"
mks.enableDX11Renderer = "FALSE"
mks.enableDX12Renderer = "FALSE"
mks.enableGLRenderer = "FALSE"
mks.enableVulkanRenderer = "TRUE"

# Disables DirectX memory/shader pages flips (n.s.) from D3D to DX12. May help if your VM guest's screen is flickering. Not helped to me
# Possible values: TRUE, FALSE (TRUE is recommended)
mks.d3d.disableFlips = "TRUE"
mks.dx8.disableFlips = "TRUE"
mks.dx9.disableFlips = "TRUE"
mks.dx10.disableFlips = "TRUE"
mks.dx11.disableFlips = "TRUE"
mks.dx12.disableFlips = "TRUE"

# Sets GPU vendor for DirectX (from D3D to DX12) in guest's VM (n.s.)
# Possible values: "0x8086" for Intel, "0x10DE" for Nvidia, "0x1002" for AMD
mks.d3d.vendorID = "0x1002"
mks.dx8.vendorID = "0x1002"
mks.dx9.vendorID = "0x1002"
mks.dx10.vendorID = "0x1002"
mks.dx11.vendorID = "0x1002"
mks.dx12.vendorID = "0x1002"

# Enables X11 presentation (only on Linux), mutually exclusive for "mks.enableVulkanPresentation"
# Possible values: TRUE, FALSE (FALSE is recommended, if enabled vulkan presentation)
mks.enableX11Presentation = "FALSE"

# Enables modern presentation via DirectX 11 (dx11). May affect interactivity. "TRUE" feels laggy
# Possible values: TRUE, FALSE (FALSE is default)
mks.dx11.enableModernPresentation = "TRUE"

# Sets waiting for query yield in milliseconds for DirectX 11 (Dx11)
# Possible values: INTEGER (1 is default)
mks.dx11.waitForQueryYieldMS = "1"

# Enables Vulkan presentation (only on Linux, n.s.), mutually exclusive for "mks.enableX11Presentation"
# Possible values: TRUE, FALSE (TRUE is recommended, if disabled X11 presentation)
mks.enableVulkanPresentation = "TRUE"

# Force choose GPU for Vulkan. It greatly affects the quality of the guest's picture in full-screen mode. Has problems with the "mks.gamingMouse.policy" parameter. Test before use
# Possible values: "NVIDIA", "INTEL", "AMD" (also maybe "RADEON", n.s.), "NONE"
mks.vk.forceDevice = "AMD"

# Allows unsupported drivers via OpenGL. It greatly affects the quality of the guest's picture in full-screen mode. Has problems with the "mks.gamingMouse.policy" parameter. Test before use
# Possible values: TRUE, FALSE (TRUE is recommended)
mks.gl.allowUnsupportedDevices = "TRUE"
mks.gl.allowUnsupportedDrivers = "TRUE"
mks.gl.allowBlacklistedDevices = "TRUE"
mks.gl.allowBlacklistedDrivers = "TRUE"

# Allows unsupported drivers via Vulkan. It greatly affects the quality of the guest's picture in full-screen mode. Has problems with the "mks.gamingMouse.policy" parameter. Test before use
mks.vk.allowUnsupportedDevices = "TRUE"
mks.vk.allowUnsupportedDrivers = "TRUE"
mks.vk.allowBlacklistedDevices = "TRUE"
mks.vk.allowBlacklistedDrivers = "TRUE"

# Changes mouse use character in VM. Has problems with the "*.allowUnsupportedDrivers.*" and "mks.vk.forceDevice" parameters. Test before use
#
# Possible values:
# "dynamic" - Equivalent to "Automatic" in the UI
# "gaming" - Equivalent to "Always" in the UI
# "absolute" - Equivalent to "Never" in the UI
# "absgaming" - Doesn't have a UI equivalent, but disables motion grab/ungrab while keeping the accelerated cursor (like "Never")
# "relative" - Doesn't have a UI equivalent, but forces the unaccelerated mouse (like "Always") without disabling motion grab/ungrab
#
mks.gamingMouse.policy = "gaming"

# Changes keyboard/mouse filtering mode. May fix input lag
# Possible values: "allow", "require" ("require" is recommended)
mks.keyboardFilter = "require"

# Disables in-guest typematic. May help in situations when typing characters on virtual desktop or hosted application, input character is repeated intermittently. This configuration prevents intended key repeat. Cannot input character repeatedly on desktop pool by holding down a key (not confirmed)
# Possible values: TRUE, FALSE
mks.disableTypematic = "TRUE"

# Disables in-guest remote client typematic. Uses in couple with option above. May help in situations when typing characters on virtual desktop or hosted application, input character is repeated intermittently. This configuration prevents intended key repeat. Cannot input character repeatedly on desktop pool by holding down a key (not confirmed)
# Possible values: TRUE, FALSE
mks.disableRemoteClientTypematic = "TRUE"

# Enables keyboard LED guest-to-host synchronization. This tip fixes the caps lock sync issue
# Possible values: TRUE, FALSE (FALSE is recommended)
mks.keyboard.syncLEDs = "FALSE"

# Sets the texture filters to the value of GL_NEAREST instead of GL_LINEAR, which should solve the problem with texture updates to redraw the screen and provides smoother magnification when scaling the display to a higher resolution (such as running a fullscreen game at 800x600 scaled to a 1600x1200 screen)
# Possible values: 0x2600, UNKNOWN
mks.gl.magFilter = "0x2600"
mks.gl.minFilter = "0x2600"

# Allows screen saver in fullscreen mode
# Possible values: TRUE, FALSE (FALSE is recommended)
mks.fullscreen.allowScreenSaver = "FALSE"

# Allows screen saver in windowed mode
# Possible values: TRUE, FALSE (FALSE is recommended)
mks.windowed.allowScreenSaver = "FALSE"

# Enables OpenGL console
# Possible values: TRUE, FALSE (FALSE is recommended)
mks.glConsole = "FALSE"

# Prevents OpenGL from logging errors
# Possible values: TRUE, FALSE (TRUE is recommended)
mks.gl.dontLogErrors = "TRUE"

# Prevents OpenGL from logging time info
# Possible values: TRUE, FALSE (TRUE is recommended)
mks.gl.noTimeInfo = "TRUE"

# Enables OpenGL double buffering
# Possible values: TRUE, FALSE (TRUE is recommended)
mks.gl.doubleBuffer = "TRUE"

# Enables OpenGL FBO (Frame Buffer Object)
# Possible values: TRUE, FALSE (TRUE is recommended)
mks.gl.fbo = "TRUE"

# Allows OpenGL use FB (Frame Buffer?, n.s.) texture
# Possible values: TRUE, FALSE (TRUE is recommended)
mks.gl.useFBTexture = "TRUE"

# Sets mouse debugging
# Possible values: TRUE, FALSE (FALSE is recommended)
mks.mouseDebug = "FALSE"

# Prevents VMWare from using host cursor (n.s.)
# Possible values: TRUE, FALSE
mks.noHostCursor = "FALSE"

# Enables host-machine cursor showing. Causes cursor doubling
# Possible values: TRUE, FALSE (FALSE is recommended)
mks.showCursor = "FALSE"

# Allow use direct input
# Possible values: TRUE, FALSE (TRUE is recommended)
mks.useDirectInput = "TRUE"

# Enables debug chain manager(?) (n.s.)
# Possible values: TRUE, FALSE (FALSE is recommended)
mks.debugChainMgr = "FALSE"

# Enables using thumbs for VMWare Player while VM is running
# Possible values: TRUE, FALSE, "PATH/TO/FILE" (FALSE is recommended)
mks.thumb.fileName = "FALSE"

# Allows always showing watermark
# Possible values: TRUE, FALSE (FALSE is recommended)
mks.alwaysWatermark = "FALSE"

### SVGA ###

# How to disable display resolution setting through VMware Tools. In order to prevent Windows from setting display modes, it may also be necessary to make changes to the Group Policy settings
# Possible values: TRUE, FALSE (FALSE is recommended)
guestinfo.svga.wddm.modeset = "FALSE"

# Allows autodetect of host-to-guest screen resolution display modes
# Possible values: TRUE, FALSE (FALSE is recommended)
svga.autodetect = "FALSE"

# Enable it to access higher resolutions. May help with maximise the VMware window and the guest resizes correctly by disabling
# Possible values: TRUE, FALSE (TRUE is recommended)
svga.guestBackedPrimaryAware = "TRUE"

# Screen Object allows several new capabilities including more efficient management of framebuffer memory, dynamic creation and destruction of virtual monitors, and it is leading up to the deprecation of BAR1 memory in favor of guest system memory
# Possible values: TRUE, FALSE (TRUE is recommended)
svga.enableScreenObject = "TRUE"

# Forces a full refresh of the screen. Changes max change tick with formula [ 100/N ] like [ N = 2; 100/2 = 50 (Hz) ]. Improves in-guest performance and interactivity with decreasing values but causes host machine overload and vise-versa. May help with SoftIce by setting "2"
# Possible values: -1, 1, 2, 4, 5, 10 (1 is recommended, -1 is default (n.s.))
svga.maxFullscreenRefreshTick = "1"
svga.maxChangeTick = "1"
svga.maxLocalChangeTick = "1"
svga.maxNoChangeTick = "1"

# Changes showing of update rate (freq)
# Possible values: TRUE, FALSE (FALSE is recommended)
svga.showUpdateRate = "FALSE"

# Changes showing of FPS
# Possible values: TRUE, FALSE (FALSE is recommended)
svga.debug.showFPS = "FALSE"

# Sets readback region complexity limit. Improves FPS of program inside VM. May improve interactivity
# Possible values: INTEGER (512 is recommended, 64 is default)
svga.readbackRegionComplexityLimit = "512"

# Sets thread polling time in microseconds. Set "1000" to reduce latency, but may cause laggy due to overhead
# Possible values: INTEGER (10000 is default)
svga.threadPollUS = "1000"

# Disables thread sleeping/idle. May cause hog one logical host CPU 100%, but may improve interactivity. Use with caution
# Possible values: TRUE, FALSE (FALSE is default)
svga.noThreadSleep = "TRUE"

# Sets thread polling pending fences in microseconds
# Possible values: INTEGER (100 is default)
svga.threadPollPendingFencesUS = "100"

# Sets maximal fence age in microseconds
# Possible values: INTEGER (100000 is default)
svga.maxFenceAgeUS = "100000"

# Sets trace FB (Frame Buffer?, n.s.) coalese in microseconds
# Possible values: INTEGER (10000 is default)
svga.traceFBCoaleseUS = "10000"

# Enables force SVGA VMWare interface tracing for debug/analysis. May help to fix SoftIce working by setting "TRUE"
# Possible values: TRUE, FALSE (FALSE is recommended, default)
svga.forceTraces = "FALSE"

# Disables HardWare(?) cursor
# Possible values: TRUE, FALSE (FALSE is recommended)
svga.noHWCursor = "FALSE"

# Enables VMWare overlay
# Possible values: TRUE, FALSE (FALSE is recommended)
svga.enableOverlay = "FALSE"

# Enables FPS frame count debug
# Possible values: TRUE, FALSE (FALSE is recommended)
svga.debug.fpsFrameCount = "FALSE"

# Enables port debug
# Possible values: TRUE, FALSE (FALSE is recommended)
svga.debug.port = "FALSE"

# Enables HardWare(?) logging
# Possible values: TRUE, FALSE (FALSE is recommended)
svga.loghw = "FALSE"

### LOGGING ###

# Sets the level of log file rotation
# Possible values: INTEGER (0 is recommended)
log.keepOld = "0"

# Sets debug logging of your guest's VM
# Possible values: TRUE, FALSE (FALSE is recommended)
logging = "FALSE"

### PRIORITY ###

# Sets priority while VM is grabbed
# Possible values: "normal", "high" ("high" is recommended)
Priority.grabbed = "high"

# Sets priority while VM is ungrabbed
# Possible values: "normal", "low", "idle" ("low" is recommended)
Priority.ungrabbed = "low"

### MEMORY ###

# This setting prevents that memory which was released by the guest is released on the host also. By disabling MemTrimRate, memory allocation inside the guest is faster because it doesn't take and give memory to the host os upon all requests. Memory trimming can very slightly reduce disk performance in virtual machines. MemTrimRate is the maximum number of memory pages released per second for an idle virtual machine
# Possible values: INTEGER (0 is recommended, 30 is default)
MemTrimRate = "0"

# Prevents VMware from adjusting the memory size of the virtual machine if it cannot allocate enough memory
# Possible values: TRUE, FALSE (FALSE is recommended)
MemAllowAutoScaleDown = "FALSE"

# This will only work for Windows hosts and this parameter can be used if high disk activity is experienced upon shutting down the virtual machine. This will prevent VMware from creating a .vmem file. Use mainmem.backing = "swap" on Linux hosts instead
# Possible values: "path", TRUE, FALSE (FALSE is recommended)
mainMem.useNamedFile = "FALSE"

# This will only work for Linux hosts and this parameter can be used if high disk activity is experienced upon shutting down the virtual machine. This will prevent VMware from creating a .vmem file. Use mainMem.useNamedFile = "FALSE" on Windows hosts instead
# Possible values: "named", "unnamed", "swap" ("swap" is recommended)
mainMem.backing = "swap"

# These two parameters will prevent the virtual machine from creating partial snapshots for suspends. When these parameters are used, virtual machine suspension will take slightly longer, but there should be less hard disk activity from VMware trying to store this information
# Possible values: TRUE, FALSE (FALSE is recommended)
mainMem.partialLazySave = "FALSE"
mainMem.partialLazyRestore = "FALSE"

# If several virtual machines are running simultaneously, VMware will try to locate identical pages and share these between the virtual machines. This can be very I/O intensive
# Possible values: TRUE, FALSE (FALSE is recommended)
sched.mem.pshare.enable = "FALSE"

# It seems to prevent the host system from swapping parts of the guest memory. This tells VMWare whether to use a fixed sized memory chunk or balloon and shrink memory as needed
# Possible values: TRUE, FALSE (TRUE is recommended)
prefvmx.useRecommendedLockedMemSize = "TRUE"

# Sets amount of RAM in percent which should be reserved by the virtual machine on the host system. If this is set to a lower value it is possible to assign the virtual machine more memory than is available in the host system. Be careful though, as in this case it will most likely lead to excessive hard drive usage. If enough RAM is on the host system, this value should be left at 100
# Possible values: INTEGER (0-100) (100 is recommended)
prefvmx.minVmMemPct = "100"

### HYPERVISOR ###

# The parameters is used to deceive the system, as well as drivers (mainly NVIDIA) that they are running inside a VM. There is an opinion that you need to write it for each individual CPU core (from v0 to v3 for quad-core CPU, for example)
# Possible values: TRUE, FALSE (FALSE is recommended)
hypervisor.cpuid.v0 = "FALSE"
hypervisor.cpuid.v1 = "FALSE"

# Enables host-to-guest IOMMU (IO Memory Management Unit) pass-thru. Creates unknown PCI device in guest system. This is AMD/Intel IOMMU Device, so you need to find and install iommu/chipset driver on your own bcs there is no such a driver in VMWare Tools package. Also may cause network breaking with bridge mode (change to NAT, it will work)
# Possible values: TRUE, FALSE (TRUE is recommended)
vvtd.enable = "TRUE"

# Enables VT-x host-to-guest features
# Possible values: TRUE, FALSE (TRUE is recommended)
vhv.enable = "TRUE"

# There may be confusion with "vhv.enable", which corresponds to the "Virtualize Intel VT-x/EPT or AMD-V/RVI" option
# Possible values: TRUE, FALSE (TRUE is recommended)
vhu.enable = "TRUE"

# Enables Virtualized Performance CPU Counters devices
# Possible values: TRUE, FALSE (TRUE is recommended)
vpmc.enable = "TRUE"

# This command enables/disables Machine Check Exception (MCE)
# Possible values: TRUE, FALSE (TRUE is recommended)
mce.enable = "TRUE"

# This undocummented parameter using for kinda of antidetect VM, bound with nested
# Possible values: TRUE, FALSE (FALSE is recommended)
vmGenCounter.enable = "FALSE"

# A message about disabling side channel mitigations shows up only when the ULM is used instead of the ring 0 VMM as the hypervisor monitor. That means the Windows host has been detected to have Hyper-V enabled. There is no advanced options in VMware Workstation Player. To disable the side channel mitigation, shut down the VM and add the following to the VM vmx configuration file
# Possible values: TRUE, FALSE (TRUE is recommended)
ulm.disableMitigations = "TRUE"

### UNITY ###

# UNDOCUMMENTED UNITY PARAMETERS
# Possible values: TRUE, FALSE
isolation.tools.unity.disable = "TRUE"
isolation.tools.unity.push.update.disable = "TRUE"
isolation.tools.unity.taskbar.disable = "TRUE"
isolation.tools.unity.windowContents.disable = "TRUE"
isolation.tools.unityActive.disable = "TRUE"
isolation.tools.unityInterlockOperation.disable = "TRUE"
unity.allowCompositingInGuest = "FALSE"
unity.enableLaunchMenu = "FALSE"
unity.showBadges = "FALSE"
unity.showBorders = "FALSE"
unity.wasCapable = "FALSE"
pref.unity.minimizeOnEnteringUnity = "FALSE"

### SOUND ###

# Enables in-guest sounds
# Possible values: TRUE, FALSE (TRUE is recommended)
sound.present = "TRUE"

# Enables autodetect for sound output device
# Possible values: TRUE, FALSE (TRUE is recommended)
sound.autoDetect = "TRUE"

# Allows to choose specified audio controller type. Note that you will need to find specified driver for your guest OS during system installation (check links on top). Also VMWare tools may contents that drivers
#
# Possible values:
# "hdaudio" - Intel hd audio (aka azalia) or realtek hd audio (n.s.), current, recommended
# "es1371" - Creative Ensoniq AudioPCI Model ES1371, default
# "sb16" - Sound Blaster 16
#
sound.virtualDev = "hdaudio"

#
#
sound.fileName = "-1"

#
#
sound.opl3.enabled = "TRUE"

#
#
sound.mpu401.host = "TRUE"

### OTHER ###

# In newer versions of Workstation you can choose "Power on to BIOS", but sometimes you still want to just have more time for selecting the boot device. Adding this to the .vmx of the VM you want to work on will help. Where 5000 is milliseconds, and the max is 10000 or 10 seconds.
# Possible values: INTEGER (0-10000) (0 is recommended)
bios.bootDelay = "2000"

# Manages VMWare hints hiding
# Possible values: TRUE, FALSE (TRUE is recommended)
hints.hideAll = "TRUE"

# Sets reminder of VMWare tools installation
# Possible values: TRUE, FALSE (FALSE is recommended)
hint.tools.toolsReminder = "FALSE"

# Tries to automatically answer all questions that may occur at boot-time
# Possible values: TRUE, FALSE (TRUE is recommended)
msg.autoAnswer = "TRUE"

# Enables "OK"-message suppression that VMWare generates
# Possible values: TRUE, FALSE (TRUE is recommended)
msg.noOK = "TRUE"

# Enables "OK"-message and "Warning"-message suppression that VMWare generates
# Possible values: TRUE, FALSE (TRUE is recommended)
msg.noOKnoWarning = "TRUE"

# Enables VMWare notification area
# Possible values: TRUE, FALSE (FALSE is recommended)
notificationArea.enabled = "FALSE"

# Adding a TPM module, through the frontdoor. It might be required to use by Windows 10 or Windows 11
# Possible values: "software", UNKNOWN
managedVM.autoAddVTPM = "software"

# Enables secure boot via UEFI. It might be required to use by Windows 10 or Windows 11
# Possible values: TRUE, FALSE
uefi.secureBoot.enabled = "TRUE"

# If you wish to manually modify a virtual machine's Secure Boot configuration, you can enable the use of the firmware's user interface for managing Secure Boot configuration using the following advanced VM config option
# Possible values: TRUE, FALSE
uefi.allowAuthBypass = "TRUE"

# Enables virtualization-based security (VBS) feature availabled in Windows
# Possible values: TRUE, FALSE
windows.vbs.enabled = "TRUE"

# Allows to enable PAE mechanism for in-guest VM. Usually matters on x32/x86 systems because it allows to use more than default RAM limit (usually from 2-3 GB up to 16 GB, for example)
# Possible values: TRUE, FALSE (TRUE is recommended)
paevm = "TRUE"

# In virtual hardware mark 7 several devices are seen as removable by the guest like for example networkcards. If you do not want this behaviour use this parameter - then the VM does not display network-cards as removable similar to older virtual hardware
# Possible values: TRUE, FALSE (FALSE is recommended)
devices.hotplug = "FALSE"

# Enables VCPU (Virtual CPU) hot addition (hotadd). May reduce loading time
# Possible values: TRUE, FALSE (FALSE is recommended)
vcpu.hotadd = "FALSE"

# Enables VRAM (Virtual RAM) hot addition (hotadd). May fix errors "add_memory failed" and "acpi_memory_enable_device() error" by disabling. May reduce loading time
# Possible values: TRUE, FALSE (FALSE is recommended)
mem.hotadd = "FALSE"

# Enables hyperthreading awareness. Set number of "vcpus" ("numvcpus") parameters equal to number of threads
# Possible values: INTEGER (1, 2)
cpuid.numSMT = "2"

# By specifying a CPU affinity setting for each virtual machine, you can restrict the assignment of virtual machines to a subset of the available processors in multiprocessor systems. By using this feature, you can assign each virtual machine to processors in the specified affinity set. See more on docs.vmware.com
# Possible values: "0-3", "0, 2, 4-7", "1, 3" "0-15", "all" ("all" is recommended)
sched.cpu.affinity = "all"

# To improve the latency sensitive workloads, you can configure the latency sensitivity of a virtual machine. The CPU scheduler for a VM with normal latency sensitivity can move the virtual CPUs of the VM across any physical CPU of the host, depending on the system load. High Latency Sensitivity requires you to set CPU and 100% memory reservation for the VM. Scheduling of the VM is adjusted for low-latency workload requirements. Each virtual CPU is granted exclusive access to a physical core
# Possible values: "low", "normal", "medium", "high" ("high" is recommended, "normal" is default)
sched.cpu.latencySensitivity = "high"

# Enables SCSI devices. You may add more with scheme scsiX.present
# Possible values: TRUE, FALSE (TRUE is recommended)
scsi0.present = "TRUE"

# Allows to choose SCSI controller device type. Note that you will need to find specified driver for your guest OS during system installation (check links on top). Also VMWare tools may contents that drivers
#
# Possible values:
# "buslogic" - BusLogic SCSI, old
# "lsilogic" - LSI Logic SCSI, old
# "lsisas1068" - LSI Logic SAS 1068, default, current
# "pvscsi" - VMware Paravirtual SCSI, allows using fasted disk i/o subsystem (requires pvscsi driver from floppy disk image (check links on top), also requires disabled logging and snapshots, increases possibility of antiVM detection), recommended 
#
scsi0.virtualDev = "pvscsi"

# Enables SCSI subtype devices. You may add more with scheme scsiX:Y.present
# Possible values: TRUE, FALSE (TRUE is recommended)
scsi0:0.present = "TRUE"

# Sets specified device to emulate SSD with scheme scsiX:Y.virtualSSD. It's recommended to check in vmx file for where is .vmdk file contents (which exactly device)
# Possible values: TRUE, FALSE (TRUE is recommended)
scsi0:0.virtualSSD = "TRUE"

# Enables IDE devices. You may add more with scheme ideX.present
# Possible values: TRUE, FALSE (TRUE is recommended)
ide0.present = "TRUE"

# Enables IDE subtype devices. You may add more with scheme ideX:Y.present
# Possible values: TRUE, FALSE (TRUE is recommended)
ide0:0.present = "TRUE"

# Sets specified device to emulate SSD with scheme ideX:Y.virtualSSD. It's recommended to check in vmx file for where is .vmdk file contents (which exactly device)
# Possible values: TRUE, FALSE (TRUE is recommended)
ide0:0.virtualSSD = "TRUE"

# Enables SATA devices. You may add more with scheme sataX.present
# Possible values: TRUE, FALSE (TRUE is recommended)
sata0.present = "TRUE"

# Enable Ethernet devices
# Possible values: TRUE, FALSE (TRUE is recommended)
ethernet0.present = "TRUE"

# Allows to choose specified ethernet device type. Note that you will need to find specified driver for your guest OS (check links on top). Also VMWare tools may contents that drivers
#
# Possible values:
# "vlance" - This adapter emulates the real old AMD 79C970 PCnet32-LANCE NIC adapter, it runs at 10 Mbps, and there are drivers for it in most 32-bit OS, with the exception of Windows Vista and later. A virtual machine with such an adapter can immediately use the network
# "e1000" - This is an emulated Intel 82545EM Gigabit Ethernet NIC. The driver for this adapter is not available on all guest operating systems. Typically, Linux with kernel versions 2.4.19 or later, Windows XP Professional x64 Edition and later, and Windows Server 2003 (32-bit) and later include a driver for this device. Its performance is quite good. E1000 adapter driver does not support jumbo frames prior to VMware ESXi/ESX 4.1. Used by default
# "e1000e" - This adapter emulates a more advanced Intel Gigabit NIC model (number 82574) in the virtual hardware of a virtual machine. The e1000e adapter is only available for virtual hardware version 8 (and later), starting with VMware vSphere 5. This is the default adapter for Windows 8 and newer guest OSes. For Linux guest OSes, e1000e is not available for selection from the interface
# "flexible" - This is not an adapter, but a way of representing it. It behaves like Vlance when the VM boots, but then turns (or not - depending on VMware Tools) into VMXNET
# "vmxnet" - Such an adapter no longer has a physical embodiment, that is, it is completely virtual. It is optimized in terms of VM performance. Since it is virtual, the OS cannot use it until the drivers included with VMware Tools are installed
# "vmxnet2" - Enchanced version of VMXNET. The VMXNET-2 adapter is based on the VMXNET device, but provides several performance-enhanced features such as jumbo frames and hardware offloads (such as TCP Segmentation Offloading, TSO). This adapter is only available for VMware ESX/ESXi 3.5 or higher hosts
# "vmxnet3" - This is the next generation of virtual network cards that are now para-virtualized. That is, part of what was previously fully emulated is now transferred directly to the physical device. This adapter is not an add-on to VMXNET or VMXNET 2, but includes all the features available for them. For example, these include: support for multiple queue mechanisms (multiqueue - also known as Receive Side Scaling on Windows), IPv6 offloads, as well as MSI/MSI-X interrupts. Recommended to use, but increases possibility of antiVM detection
#
ethernet0.virtualDev = "vmxnet3"

# Enables Etherned device to autorun on guest VM startup
# Possible values: TRUE, FALSE (TRUE is recommended)
ethernet0.startConnected = "TRUE"

# Enables Serial devices
# Possible values: TRUE, FALSE (TRUE is recommended)
serial0.present = "TRUE"

# Enables VMCI devices. The Virtual Machine Communication Interface (VMCI) is an infrastructure that provides fast and efficient communication between a virtual machine and a host
# Possible values: TRUE, FALSE (TRUE is recommended)
vmci.available = "TRUE"

# Enables device filtering for the VMware VMCI (Virtual Machine Communication Interface) network service. Using this option can be useful to improve the security of your virtual environment by allowing you to restrict access to the VMCI network service. This can be especially important in environments where strict access control is required
# Possible values: TRUE, FALSE
vmci.filter.enable = "TRUE"

# Enables VMCI devices. The Virtual Machine Communication Interface (VMCI) is an infrastructure that provides fast and efficient communication between a virtual machine and a host
# Possible values: TRUE, FALSE (TRUE is recommended)
vmci0.present = "TRUE"

# Controls access to the VMware VMCI network service within a virtual machine. When set to TRUE, access to the VMCI network service is unrestricted, meaning that any program or process inside the virtual machine can use this service. When set to FALSE, access to the VMCI network service is restricted and only privileged processes can use this service
# Possible values: TRUE, FALSE
vmci0.unrestricted = "FALSE"

# Enables HPET devices
# Possible values: TRUE, FALSE (TRUE is recommended)
hpet0.present = "TRUE"

# Enables EHCI devices
# Possible values: TRUE, FALSE (TRUE is recommended)
ehci.present = "TRUE"

# Enables Floppy devices
# Possible values: TRUE, FALSE (FALSE is recommended)
floppy0.present = "FALSE"

# May help to fix problem with not enough physical memory is available to power on this virtual machine
# Possible values: TRUE, FALSE (TRUE is recommended)
vmmon.disableHostParameters = "TRUE"

# Manages disabling suspend mode for guest's VM
# Possible values: TRUE, FALSE (TRUE is recommended)
suspend.disabled = "TRUE"

# Theoretically manages GPS sensors (n.s.)
# Possible values: "pass-through", "disabled" ("disabled" is recommended)
sensor.location = "disabled"

# Theoretically manages orientation sensors (n.s.)
# Possible values: "pass-through", "disabled" ("disabled" is recommended)
sensor.orientation = "disabled"

# Allows to do pass-thru of some host DMI info to guest's VM. May fix some troubles with hypervisor
# Possible values: TRUE, FALSE (TRUE is recommended)
hw.model.reflectHost = "TRUE"

# Allows to do pass-thru of some host DMI info to guest's VM. May fix some troubles with hypervisor. Same as above one
# Possible values: TRUE, FALSE (TRUE is recommended)
smbios.reflectHost = "TRUE"

# Enables using for short serial number in DMI
# Possible values: TRUE, FALSE (TRUE is recommended
smbios.useShortSerialNumber = "TRUE"

# Allow to do pass-thru of host serial number to guest's VM
# Possible values: TRUE, FALSE (TRUE is recommended)
serialNumber.reflectHost = "TRUE"

# Scoreboard files contain performance information about the VM for the Scoreboard Widget and is not required to run the VM
# Possible values: TRUE, FALSE (FALSE is recommended)
vmx.scoreboard.enabled = "FALSE"

# The "debug" is the default for the beta versions (aka Tech Preview). When set to "debug", vmware-vmx-debug.exe will be used instead of vmware-vmx.exe and the vmware.log file will be larger
# Possible values: "release", "debug" ("release" is recommended)
vmx.buildType = "release"

# Disables snapshots
# Possible values: TRUE, FALSE (TRUE is recommended)
snapshot.disabled = "TRUE"

# Sets numbers of snapshots
# Possible values INTEGER (0 is recommended)
snapshot.numSnapshots = "0"

# Sets max number of snapshots
# Possible values: INTEGER (0 is recommended)
snapshot.maxSnapshots = "0"

# In Workstation 16.2 Dark Mode had disappeared by accident, it was discovered that adding the following setting to the preferences.ini file makes it re-appear. Disabling may help fix guest's VM screen flickering
# Possible values: TRUE, FALSE (FALSE is recommended)
wsFeatureDarkModeSupported = "FALSE"

# Sets VM sample monitor control logging
# Possible values: TRUE, FALSE (FALSE is recommended)
monitor_control.log_vmsample = "FALSE"

# Enables VNC remote display
# Possible values: TRUE, FALSE (FALSE is recommended)
RemoteDisplay.vnc.enabled = "FALSE"

:::::::::::::::::::::::::::::::::::::::::::::::
:: IN-WINDOWS-GUEST ADDITIONAL COMMANDS .bat ::
:::::::::::::::::::::::::::::::::::::::::::::::

:: Applies in-guest system hibernation
:: Possible values: "on", "off" ("off" is recommended)
powercfg /hibernate off

:: Applies in-guest hypervisor type definition
:: Possible values: "on", "off" ("off" is recommended)
bcdedit /set hypervisorlaunchtype off

:: Allows to disable driver digital signature verification in Windows
:: Possible values: "ON", "OFF"
bcdedit /set nointegritychecks ON
bcdedit /set loadoptions DISABLE_INTEGRITY_CHECKS
bcdedit /set TESTSIGNING ON

:: To disable driver digital signature verification via regedit (regedit.msc)
[REGEDIT] --> HKEY_CURRENT_USER --> Software --> Policies --> Microsoft
:: Then you need to:
create a section named "Driver Signing"
:: Then you need to move:
[REGEDIT] --> HKEY_CURRENT_USER --> Software --> Policies --> Microsoft --> Driver Signing
:: Then you need to:
create key BehaviorOnFailedVerify with type DWORD with value 0

:: To disable driver digital signature verification via gpedit (gpedit.msc), if you have it in your guest OS
[GPEDIT] --> User Configuration --> Administrative Templates --> System --> Driver Installation --> Code Signing for Device Drivers (double click)
:: Then you must select in the upper-left-corner of the window that opens:
Enabled
:: And in the lower-left:
Ignore
:: Or select in the upper-left-corner (n.s.):
Disabled

:: To forcefully disable driver digital signature verification (that will 100% work, but uncomfortable)
PowerOFF --> PowerON --> F8 --> Disable Driver Signature Enforcement

:: For being able to change in-login background (without any additional programs) picture you need in regedit (regedit.msc):
[REGEDIT] --> HKEY_LOCAL_MACHINE --> Software --> Microsoft --> Windows --> CurrentVersion --> Authentication --> LogonUI --> Background
:: Then you need to:
create key OEMBackground with type DWORD with value 1
:: Then go in explorer:
C:\Windows\System32\oobe
:: Create folders if they not exists. It will work:
info\backgrounds
:: Put in backgrounds any .jpg image named backgroundDefault.jpg and size under 256KB. The result should be like this:
C:\Windows\System32\oobe\info\backgrounds\backgroundDefault.jpg
:: It will work, I tested this method

:: The code below is for autorun application that you need on a VM poweron just for avoid wasting time. Change N (5 for example) for seconds you need for fully ready-steady of your VM. Run it as a .bat file. Make a shortcut link to file and place it to autorun (Start -> All programs -> Autorun)

:::::: CODE BEGIN ::::::

@echo off

timeout N > nul

start "" C:\path\to\need\application.exe -popupwindow

exit

:::::: CODE END ::::::

:: The code below is for automatic deletetion trash, disk cleanup, defragmentation and space shrinking. Exclude directories from it that you do not want to clear. Run it as a .bat file

:::::: CODE BEGIN ::::::

cd C:\

rmdir /q /s "C:\Windows\Microsoft.NET\Framework64\v4.0.30319\SetupCache"
rmdir /q /s "C:\Windows\Installer"
rmdir /q /s "C:\Windows\SoftwareDistribution"
rmdir /q /s "C:\Windows\assembly\NativeImages_v4.0.30319_64\Temp"
rmdir /q /s "C:\Program Files\Common Files\VMware\InstallerCache"
rmdir /q /s "C:\Program Files\AMD"
rmdir /q /s "C:\Program Files\NVIDIA Corporation"
rmdir /q /s "C:\ProgramData\Package Cache"
rmdir /q /s "C:\Program Files\Google"
rmdir /q /s "C:\Program Files (x86)\Google"
rmdir /q /s "C:\AMD"
rmdir /q /s "C:\Intel"
rmdir /q /s "C:\DirectX"
rmdir /q /s "C:\Users\Admin\AppData\Local\RadeonInstaller"
rmdir /q /s "C:\Users\Public\Music\Sample Music"
rmdir /q /s "C:\Users\Public\Videos\Sample Videos"
rmdir /q /s "C:\Users\Public\Pictures\Sample Pictures"

cd "C:\Windows\Temp" && rmdir /q /s .
cd "C:\Users\Admin\AppData\Local\Temp" && rmdir /q /s .
cd "C:\Windows\Logs" && rmdir /q /s .

cd C:\

erase /q /s "C:\ProgramData\VMware\logs\*.*"
erase /q /s "C:\Users\Admin\AppData\Local\Microsoft\Media Player\*.*"
erase /q /s "C:\Users\Admin\Downloads\*.*"
erase /q /s "C:\Users\Admin\Videos\*.*"
erase /q /s "C:\Users\Admin\Pictures\*.*"
erase /q /s "C:\Users\Admin\Documents\*.*"
erase /q /s "C:\Users\Admin\Music\*.*"

cleanmgr

defrag C: /A

defrag C: /U /V

defrag C: /A

cd "C:\Program Files\VMware\VMware Tools" && .\VMwareToolboxCmd.exe disk shrink C:\

:::::: CODE END ::::::

#####################################################
# MY OWN CUSTOM CONFIG .ini JUST FOR FAST COPYPASTE #
#####################################################

installerDefaults.autoSoftwareUpdateEnabled = "FALSE"
installerDefaults.componentDownloadEnabled = "FALSE"
installerDefaults.dataCollectionEnabled = "FALSE"
gui.applyHostDisplayScalingToGuest = "TRUE"
pref.autoFit = "FALSE"
pref.autoFitGuestToWindow = "FALSE"
pref.autoFitFullScreen = "stretchGuestToHost"
pref.autoSoftwareUpdatePermission = "deny"
pref.vmplayer.dataCollectionEnabled = "FALSE"
pref.vmplayer.fullscreen.autohide = "TRUE"
pref.fullscreen.toolbarpixels = "0"
pref.vmplayer.fullscreen.nobar = "TRUE"
pref.vmplayer.exit.vmAction = "poweroff"
pref.vmplayer.deviceBarToplevel = "TRUE"

#####################################################
# MY OWN CUSTOM CONFIG .vmx JUST FOR FAST COPYPASTE #
#####################################################

installerDefaults.autoSoftwareUpdateEnabled = "FALSE"
installerDefaults.componentDownloadEnabled = "FALSE"
installerDefaults.dataCollectionEnabled = "FALSE"
gui.applyHostDisplayScalingToGuest = "TRUE"
gui.fullscreenatpoweron = "TRUE"
gui.viewModeAtPowerOn = "fullscreen"
pref.autoFit = "FALSE"
pref.autoFitGuestToWindow = "FALSE"
pref.autoFitFullScreen = "stretchGuestToHost"
pref.motionGrab = "FALSE"
pref.motionUngrab = "FALSE"
pref.autoSoftwareUpdatePermission = "deny"
pref.vmplayer.dataCollectionEnabled = "FALSE"
pref.vmplayer.fullscreen.autohide = "TRUE"
pref.fullscreen.toolbarpixels = "0"
pref.vmplayer.fullscreen.nobar = "TRUE"
pref.vmplayer.exit.vmAction = "poweroff"
pref.vmplayer.deviceBarToplevel = "TRUE"
tools.remindInstall = "FALSE"
tools.upgrade.policy = "manual"
tools.syncTime = "FALSE"
isolation.tools.hgfs.disable = "TRUE"
isolation.tools.hgfs.notify.enable = "FALSE"
isolation.tools.osNotFound.disable = "TRUE"
isolation.tools.log.disable = "TRUE"
isolation.tools.updateTools.disable = "TRUE"
isolation.tools.message.disable = "TRUE"
hgfs.mapRootShare = "FALSE"
isolation.tools.unity.disable = "TRUE"
isolation.tools.unity.push.update.disable = "TRUE"
isolation.tools.unity.taskbar.disable = "TRUE"
isolation.tools.unity.windowContents.disable = "TRUE"
isolation.tools.unityActive.disable = "TRUE"
isolation.tools.unityInterlockOperation.disable = "TRUE"
unity.allowCompositingInGuest = "FALSE"
unity.enableLaunchMenu = "FALSE"
unity.showBadges = "FALSE"
unity.showBorders = "FALSE"
unity.wasCapable = "FALSE"
pref.unity.minimizeOnEnteringUnity = "FALSE"
usb.present = "TRUE"
usb.generic.allowHID = "TRUE"
usb.generic.allowLastHID = "TRUE"
usb.analyzer.enable = "FALSE"
keyboard.allowBothIRQs = "FALSE"
keyboard.vusb.enable = "TRUE"
keyboard.softAutorepeat = "FALSE"
keyboard.typematicMinDelay = "5"
vmmouse.present = "FALSE"
mouse.vusb.enable = "TRUE"
mouse.vusb.useBasicMode = "FALSE"
touchscreen.vusb.present = "FALSE"
usb.generic.allowCCID = "TRUE"
usb.ccid.disable = "TRUE"
mks.vsync = "TRUE"
mks.noBeep = "TRUE"
mks.enable3d = "TRUE"
mks.skipHookTimeoutCheck = "TRUE"
mks.updateCoalescePeriodUS = "0"
mks.requireHardwareRenderer = "TRUE"
mks.allowAcceleratedRenderers = "TRUE"
mks.movie.config.high.recordSound = "FALSE"
mks.forceDiscreteGPU = "TRUE"
mks.useD3D = "TRUE"
mks.enableX11Presentation = "FALSE"
mks.enableVulkanPresentation = "TRUE"
mks.enableVulkanRenderer = "TRUE"
mks.vk.forceDevice = "AMD"
mks.gl.allowUnsupportedDevices = "TRUE"
mks.gl.allowUnsupportedDrivers = "TRUE"
mks.gl.allowBlacklistedDevices = "TRUE"
mks.gl.allowBlacklistedDrivers = "TRUE"
mks.vk.allowUnsupportedDevices = "TRUE"
mks.vk.allowUnsupportedDrivers = "TRUE"
mks.vk.allowBlacklistedDevices = "TRUE"
mks.vk.allowBlacklistedDrivers = "TRUE"
mks.gamingMouse.policy = "gaming"
mks.maxRefreshRate = "60"
mks.lowCompositingFPS = "60"
mks.maxCompositingFPS = "60"
mks.keyboardFilter = "require"
mks.disableTypematic = "TRUE"
mks.disableRemoteClientTypematic = "TRUE"
mks.d3d.disableFlips = "TRUE"
mks.dx8.disableFlips = "TRUE"
mks.dx9.disableFlips = "TRUE"
mks.dx10.disableFlips = "TRUE"
mks.dx11.disableFlips = "TRUE"
mks.dx12.disableFlips = "TRUE"
mks.d3d.vendorID = "0x1002"
mks.dx8.vendorID = "0x1002"
mks.dx9.vendorID = "0x1002"
mks.dx10.vendorID = "0x1002"
mks.dx11.vendorID = "0x1002"
mks.dx12.vendorID = "0x1002"
mks.keyboard.syncLEDs = "FALSE"
mks.gl.magFilter = "0x2600"
mks.gl.minFilter = "0x2600"
mks.fullscreen.allowScreenSaver = "FALSE"
mks.windowed.allowScreenSaver = "FALSE"
mks.glConsole = "FALSE"
mks.gl.dontLogErrors = "TRUE"
mks.gl.noTimeInfo = "TRUE"
mks.gl.doubleBuffer = "TRUE"
mks.gl.fbo = "TRUE"
mks.gl.useFBTexture = "TRUE"
mks.mouseDebug = "FALSE"
mks.noHostCursor = "FALSE"
mks.showCursor = "FALSE"
mks.useDirectInput = "TRUE"
mks.debugChainMgr = "FALSE"
mks.thumb.fileName = "FALSE"
mks.alwaysWatermark = "FALSE"
guestinfo.svga.wddm.modeset = "FALSE"
svga.autodetect = "FALSE"
svga.guestBackedPrimaryAware = "TRUE"
svga.enableScreenObject = "TRUE"
svga.maxFullscreenRefreshTick = "1"
svga.maxChangeTick = "1"
svga.maxLocalChangeTick = "1"
svga.maxNoChangeTick = "1"
svga.showUpdateRate = "FALSE"
svga.debug.showFPS = "FALSE"
svga.readbackRegionComplexityLimit = "512"
svga.forceTraces = "FALSE"
svga.noHWCursor = "FALSE"
svga.enableOverlay = "FALSE"
svga.debug.fpsFrameCount = "FALSE"
svga.debug.port = "FALSE"
svga.loghw = "FALSE"
log.keepOld = "0"
logging = "FALSE"
Priority.grabbed = "high"
Priority.ungrabbed = "low"
MemTrimRate = "0"
MemAllowAutoScaleDown = "FALSE"
mainMem.backing = "swap"
mainMem.useNamedFile = "FALSE"
mainMem.partialLazySave = "FALSE"
mainMem.partialLazyRestore = "FALSE"
sched.mem.pshare.enable = "FALSE"
prefvmx.useRecommendedLockedMemSize = "TRUE"
prefvmx.minVmMemPct = "100"
hypervisor.cpuid.v0 = "FALSE"
hypervisor.cpuid.v1 = "FALSE"
hypervisor.cpuid.v2 = "FALSE"
hypervisor.cpuid.v3 = "FALSE"
vvtd.enable = "TRUE"
vhv.enable = "TRUE"
vhu.enable = "TRUE"
vpmc.enable = "TRUE"
mce.enable = "TRUE"
vmGenCounter.enable = "FALSE"
ulm.disableMitigations = "TRUE"
bios.bootDelay = "0"
hints.hideAll = "TRUE"
hint.tools.toolsReminder = "FALSE"
msg.autoAnswer = "TRUE"
msg.noOK = "TRUE"
msg.noOKnoWarning = "TRUE"
notificationArea.enabled = "FALSE"
paevm = "TRUE"
devices.hotplug = "FALSE"
mem.hotadd = "FALSE"
vcpu.hotadd = "FALSE"
cpuid.numSMT = "2"
sched.cpu.affinity = "0-3"
sched.cpu.latencySensitivity = "high"
scsi0.present = "TRUE"
scsi0.virtualDev = "pvscsi"
scsi0:0.present = "TRUE"
scsi0:0.virtualSSD = "TRUE"
sata0.present = "TRUE"
ethernet0.present = "TRUE"
ethernet0.virtualDev = "vmxnet3"
ethernet0.startConnected = "TRUE"
serial0.present = "TRUE"
vmci.available = "TRUE"
vmci.filter.enable = "FALSE"
vmci0.present = "TRUE"
vmci0.unrestricted = "TRUE"
hpet0.present = "TRUE"
ehci.present = "TRUE"
floppy0.present = "FALSE"
vmmon.disableHostParameters = "TRUE"
suspend.disabled = "TRUE"
sensor.location = "disabled"
sensor.orientation = "disabled"
hw.model.reflectHost = "TRUE"
smbios.reflectHost = "TRUE"
smbios.useShortSerialNumber = "TRUE"
serialNumber.reflectHost = "TRUE"
vmx.scoreboard.enabled = "FALSE"
vmx.buildType = "release"
snapshot.disabled = "TRUE"
snapshot.numSnapshots = "0"
snapshot.maxSnapshots = "0"
wsFeatureDarkModeSupported = "FALSE"
monitor_control.log_vmsample = "FALSE"
RemoteDisplay.vnc.enabled = "FALSE"

########################################################
# FOR LINUX GUEST WITH CHANGES RELATIVELY TO ABOVE ONE #
########################################################

isolation.tools.hgfs.notify.enable = "TRUE"
isolation.tools.message.disable = "FALSE"
isolation.tools.unity.disable = "FALSE"
MemTrimRate = "30"
MemAllowAutoScaleDown = "TRUE"
sched.mem.pshare.enable = "TRUE"
prefvmx.useRecommendedLockedMemSize = "FALSE"
prefvmx.minVmMemPct = "0"
hypervisor.cpuid.v0 = "TRUE"
hypervisor.cpuid.v1 = "TRUE"
hypervisor.cpuid.v2 = "TRUE"
hypervisor.cpuid.v3 = "TRUE"
mce.enable = "FALSE"
vmGenCounter.enable = "TRUE"
vmmon.disableHostParameters = "FALSE"
sound.autoDetect = "TRUE"
sound.fileName = "-1"
sound.virtualDev = "hdaudio"

:::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:: MY OWN CUSTOM COMMANDS .bat JUST FOR FAST COPYPASTE ::
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::

powercfg /hibernate off
bcdedit /set hypervisorlaunchtype off

:::::: CHANGING LOGIN BACKGROUND ::::::

[REGEDIT] --> HKEY_LOCAL_MACHINE --> Software --> Microsoft --> Windows --> CurrentVersion --> Authentication --> LogonUI --> Background
create key OEMBackground with type DWORD with value 1

C:\Windows\System32\oobe\info\backgrounds\backgroundDefault.jpg

:::::: BAT FOR AUTORUN APPLICATION ::::::

:::::: CODE BEGIN ::::::

@echo off

timeout 5 > nul

start "" C:\Games\CWClient\CWClient.exe -popupwindow

exit

:::::: CODE END ::::::

:::::: BAT FOR AUTOMATIC DISK CLEANUP ::::::

:::::: CODE BEGIN ::::::

cd C:\

rmdir /q /s "C:\Windows\Microsoft.NET\Framework64\v4.0.30319\SetupCache"
rmdir /q /s "C:\Windows\Installer"
rmdir /q /s "C:\Windows\SoftwareDistribution"
rmdir /q /s "C:\Windows\assembly\NativeImages_v4.0.30319_64\Temp"
rmdir /q /s "C:\Program Files\Common Files\VMware\InstallerCache"
rmdir /q /s "C:\Program Files\AMD"
rmdir /q /s "C:\Program Files\NVIDIA Corporation"
rmdir /q /s "C:\ProgramData\Package Cache"
rmdir /q /s "C:\Program Files\Google"
rmdir /q /s "C:\Program Files (x86)\Google"
rmdir /q /s "C:\AMD"
rmdir /q /s "C:\Intel"
rmdir /q /s "C:\DirectX"
rmdir /q /s "C:\Users\Admin\AppData\Local\RadeonInstaller"
rmdir /q /s "C:\Users\Public\Music\Sample Music"
rmdir /q /s "C:\Users\Public\Videos\Sample Videos"
rmdir /q /s "C:\Users\Public\Pictures\Sample Pictures"

cd "C:\Windows\Temp" && rmdir /q /s .
cd "C:\Users\Admin\AppData\Local\Temp" && rmdir /q /s .
cd "C:\Windows\Logs" && rmdir /q /s .

cd C:\

erase /q /s "C:\ProgramData\VMware\logs\*.*"
erase /q /s "C:\Users\Admin\AppData\Local\Microsoft\Media Player\*.*"
erase /q /s "C:\Users\Admin\Downloads\*.*"
erase /q /s "C:\Users\Admin\Videos\*.*"
erase /q /s "C:\Users\Admin\Pictures\*.*"
erase /q /s "C:\Users\Admin\Documents\*.*"
erase /q /s "C:\Users\Admin\Music\*.*"

cleanmgr

defrag C: /A

defrag C: /U /V

defrag C: /A

cd "C:\Program Files\VMware\VMware Tools" && .\VMwareToolboxCmd.exe disk shrink C:\

:::::: CODE END ::::::

KEYWORDS

VMWare, Workstation, Pro, Player, Fusion, VMWare Workstation, VMWare Workstation Pro, VMWare Player, VMWare Fusion, .ini, .vmx, .bat, Configurations, Settings, Parameters, Fixes, Patches, Hacks, Tweaks, Preferences, Scripts, Performance, Gaming, Virtualization, Optimization, Customization, Enhancements, Efficiency, VMware Workstation performance tweaks, .ini and .vmx configuration, Gaming optimizations for VMware, Custom .bat scripts for VMware settings, Performance parameters for VMware Workstation, Patching and fixing VMware issues, Hacks for better gaming on VMware, VMware preferences customization, Efficiency enhancements for VMware, Tweaking VMware settings for gaming


Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment