Skip to content

[Bug]: Preload Game Files (vmtouch) fail if an argument is used #3513

@TrusterX

Description

@TrusterX

Describe the bug

if you try to enable Preload Game data, while command arguments are passed in the launcher, you will receive an error from vmtouch - looks like a parse error to me:

08:43:53 (INFO) Launching an executable… 
08:43:55 (INFO) Using EasyAntiCheat runtime 
08:43:55 (INFO) Using BattlEye runtime 
/app/bin/vmtouch: invalid option -- 'c'
/app/bin/vmtouch: invalid option -- 'c'

vmtouch v1.3.1 - the Virtual Memory Toucher by Doug Hoyte
Portable file system cache diagnostics and control

Usage: vmtouch [OPTIONS] ... FILES OR DIRECTORIES ...

Options:
  -t touch pages into memory
  -e evict pages from memory
  -l lock pages in physical memory with mlock(2)
  -L lock pages in physical memory with mlockall(2)
  -d daemon mode
  -m <size> max file size to touch
  -p <range> use the specified portion instead of the entire file
  -f follow symbolic links
  -F don't crawl different filesystems
  -h also count hardlinked copies
  -i <pattern> ignores files and directories that match this pattern
  -I <pattern> only process files that match this pattern
  -b <list file> get files or directories from the list file
  -0 in batch mode (-b) separate paths with NUL byte instead of newline
  -w wait until all pages are locked (only useful together with -d)
  -P <pidfile> write a pidfile (only useful together with -l or -L)
  -o <type> output in machine friendly format.  'kv' for key=value pairs.
  -v verbose
  -q quiet
kill: usage: kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l [sigspec]

To Reproduce

  1. $ LANG=C flatpak run com.usebottles.bottles
  2. Go to a Bottle (eg. Battle.net) → Settings → enable Preload Game files
  3. go back and change launch Option for a Starter (in my Example for wowclassic.exe)
  4. add "-console" to Command Arguments (without the quotas) and click save.
  5. click "play".

Package

Flatpak from Flathub

Distribution

Silverblue 40

Debugging Information

Official Package: true
Version: '51.13'
DE/WM: gnome-xorg
Display:
    X.org: true
    X.org (port): :0
    Wayland: false
Graphics:
    vendors:
        nvidia:
            vendor: nvidia
            envs:
                __NV_PRIME_RENDER_OFFLOAD: '1'
                __GLX_VENDOR_LIBRARY_NAME: nvidia
                __VK_LAYER_NV_optimus: NVIDIA_only
            icd: /usr/lib/x86_64-linux-gnu/GL/vulkan/icd.d/nvidia_icd.json
            nvngx_path: /usr/lib/x86_64-linux-gnu/GL/nvidia-560-35-03/extra/nvidia/wine
    prime:
        integrated: null
        discrete: null
Kernel:
    Type: Linux
    Version: 6.10.11-200.fc40.x86_64
Disk:
    Total: 33587793920
    Free: 33587625984
RAM:
    MemTotal: 62.6GiB
    MemAvailable: 59.4GiB
Bottles_envs: null

Troubleshooting Logs

dame@x1-lan-home-arpa:~$ LANG=C flatpak run com.usebottles.bottles 
08:37:45 (INFO) Launching with URI: None 
08:37:45 (INFO) [Activate] request received. 
08:37:45 (INFO) Bottles Started! 
08:37:45 (INFO) Performing Bottles checks… 
08:37:45 (INFO) Dxvks found:
	 - dxvk-2.4
	 - dxvk-2.4.1
 
08:37:45 (INFO) Vkd3ds found:
	 - vkd3d-proton-2.13
 
08:37:45 (INFO) Nvapis found:
	 - dxvk-nvapi-v0.7.1
 
08:37:45 (INFO) Latencyflexs found:
	 - latencyflex-v0.1.1
 
08:37:45 (INFO) Runners found:
	 - soda-9.0-1
	 - wine-ge-proton8-26
	 - sys-wine-9.0
 
08:37:45 (INFO) Bottles found:
	 - Battle.net
	 - OpenBVE
 
08:37:45 (INFO) Catalog installers loaded 
08:37:45 (INFO) Catalog dependencies loaded 
08:37:45 (INFO) Catalog components loaded 
08:38:07 (INFO) Setting Key sync=fsync for bottle Battle.net… 
08:38:07 (INFO) There is no running wineserver. 
08:38:17 (INFO) Setting Key vmtouch=True for bottle Battle.net… 
08:43:31 (INFO) Setting Key d90d6932-a25b-4692-8b22-b761d08b0706={'executable': 'WowClassic.exe', 'arguments': '-console', 'name': 'World of Warcaraft Classic', 'path': '/var/home/dame/.var/app/com.usebottles.bottles/data/bottles/bottles/Battle.net/drive_c/Program Files (x86)/World of Warcraft/_classic_era_/WowClassic.exe', 'folder': '/var/home/dame/.var/app/com.usebottles.bottles/data/bottles/bottles/Battle.net/drive_c/Program Files (x86)/World of Warcraft/_classic_era_', 'icon': 'com.usebottles.bottles-program', 'script': None, 'dxvk': True, 'vkd3d': None, 'dxvk_nvapi': None, 'fsr': None, 'pulseaudio_latency': None, 'virtual_desktop': None, 'removed': None, 'id': 'd90d6932-a25b-4692-8b22-b761d08b0706'} for bottle Battle.net… 
08:43:53 (INFO) Launching an executable… 
08:43:55 (INFO) Using EasyAntiCheat runtime 
08:43:55 (INFO) Using BattlEye runtime 
/app/bin/vmtouch: invalid option -- 'c'
/app/bin/vmtouch: invalid option -- 'c'

vmtouch v1.3.1 - the Virtual Memory Toucher by Doug Hoyte
Portable file system cache diagnostics and control

Usage: vmtouch [OPTIONS] ... FILES OR DIRECTORIES ...

Options:
  -t touch pages into memory
  -e evict pages from memory
  -l lock pages in physical memory with mlock(2)
  -L lock pages in physical memory with mlockall(2)
  -d daemon mode
  -m <size> max file size to touch
  -p <range> use the specified portion instead of the entire file
  -f follow symbolic links
  -F don't crawl different filesystems
  -h also count hardlinked copies
  -i <pattern> ignores files and directories that match this pattern
  -I <pattern> only process files that match this pattern
  -b <list file> get files or directories from the list file
  -0 in batch mode (-b) separate paths with NUL byte instead of newline
  -w wait until all pages are locked (only useful together with -d)
  -P <pidfile> write a pidfile (only useful together with -l or -L)
  -o <type> output in machine friendly format.  'kv' for key=value pairs.
  -v verbose
  -q quiet
kill: usage: kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l [sigspec]

Additional context

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions