Skip to content

Instantly share code, notes, and snippets.

View Matoking's full-sized avatar

Janne Pulkkinen Matoking

View GitHub Profile
@Matoking
Matoking / print_appinfo_field_name_table.py
Created June 28, 2024 11:41
print_appinfo_field_name_table.py
# Licensed under Creative Commons Zero
#
# Prints the list of field names stored at the end of the `appinfo.vdf` file
# which is needed to parse the binary VDF segments in the same file.
# This list can then be provided to `vdf.binary_load` as the `field_names` kwarg.
from pathlib import Path
import struct
appinfo_path = Path.home() / ".steam" / "steam" / "appcache" / "appinfo.vdf"
$ find ~/.steam/steam/steamapps/common/Proton\ 8.0/
/home/matoking/.steam/steam/steamapps/common/Proton 8.0/
/home/matoking/.steam/steam/steamapps/common/Proton 8.0/user_settings.sample.py
/home/matoking/.steam/steam/steamapps/common/Proton 8.0/proton_dist.tar
/home/matoking/.steam/steam/steamapps/common/Proton 8.0/LICENSE
/home/matoking/.steam/steam/steamapps/common/Proton 8.0/proton_3.7_tracked_files
/home/matoking/.steam/steam/steamapps/common/Proton 8.0/version
/home/matoking/.steam/steam/steamapps/common/Proton 8.0/__pycache__
/home/matoking/.steam/steam/steamapps/common/Proton 8.0/__pycache__/filelock.cpython-39.pyc
/home/matoking/.steam/steam/steamapps/common/Proton 8.0/dist
@Matoking
Matoking / ubuntu-21.10-packages.txt
Created January 9, 2023 18:10
Ubuntu 21.10 and Ubuntu 22.04 packages
accountsservice 0.6.55
acl 2.2.53
acpi-support 0.143build1
acpid 1:2.0.32
adduser 3.118ubuntu5
adwaita-icon-theme 40.1.1
aisleriot 1:3.22.9
alsa-base 1.0.25+dfsg
alsa-topology-conf 1.2.5.1
alsa-ucm-conf 1.2.4
# Maintainer: loathingkernel <loathingkernel _a_ gmail _d_ com>
pkgname=proton-ge-custom
_srctag=GE-Proton7-37
_commit=
pkgver=${_srctag//-/.}
_geckover=2.47.3
_monover=7.3.1
pkgrel=1
epoch=2
$ ./steam-runtime-launch-client --pass-env XAUTHORITY --pass-env DISPLAY --bus-name "com.foo.TestProton.Test" --share-pids --directory /tmp/proton_matoking -- ./run winecfg
28709.734:02d4:02d8:trace:loaddll:build_module Loaded L"C:\\windows\\syswow64\\start.exe" at 00400000: builtin
28709.734:02d4:02d8:trace:loaddll:build_module Loaded L"C:\\windows\\syswow64\\kernelbase.dll" at 7B000000: builtin
28709.734:02d4:02d8:trace:loaddll:build_module Loaded L"C:\\windows\\syswow64\\kernel32.dll" at 7B600000: builtin
28709.735:02d4:02d8:trace:loaddll:build_module Loaded L"C:\\windows\\syswow64\\msvcrt.dll" at 6A280000: builtin
28709.736:02d4:02d8:trace:loaddll:build_module Loaded L"C:\\windows\\syswow64\\ucrtbase.dll" at 70B40000: builtin
28709.736:02d4:02d8:trace:loaddll:build_module Loaded L"C:\\windows\\syswow64\\sechost.dll" at 6BC00000: builtin
28709.736:02d4:02d8:trace:loaddll:build_module Loaded L"C:\\windows\\syswow64\\advapi32.dll" at 61740000: builtin
28709.736:02d4:02d8:trace:loaddll:build_module Loaded L"C
@Matoking
Matoking / wine_hang.txt
Created September 26, 2021 14:32
wine_hang.txt
❯ ./run cmd.exe /c echo '%ProgramFiles%'
esync: up and running.
wine: RLIMIT_NICE is <= 20, unable to use setpriority safely
31970.151:0028:002c:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\wineboot.exe" at 0000000140000000: builtin
31970.151:0028:002c:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\kernelbase.dll" at 000000007B000000: builtin
31970.151:0028:002c:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\kernel32.dll" at 000000007B600000: builtin
31970.151:0028:002c:trace:seh:install_bpf Installing seccomp filters.
31970.151:0028:002c:trace:seh:check_bpf_jit_enable enabled 0x31.
31970.152:0028:002c:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\ucrtbase.dll" at 00000003AF670000: builtin
31970.153:0028:002c:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\sechost.dll" at 000000032A700000: builtin
❯ scons platform=linux bits=64 target=d
scons: Reading SConscript files ...
scons: done reading SConscript files.
scons: Building targets ...
gcc -o build/geo_generator.os -c -fPIC -g3 -Og -fPIC -Isrc/h src/c/geo_generator.c
gcc -o build/map_data.os -c -fPIC -g3 -Og -fPIC -Isrc/h src/c/map_data.c
gcc -o build/map_parser.os -c -fPIC -g3 -Og -fPIC -Isrc/h src/c/map_parser.c
gcc -o build/matrix.os -c -fPIC -g3 -Og -fPIC -Isrc/h src/c/matrix.c
gcc -o build/surface_gatherer.os -c -fPIC -g3 -Og -fPIC -Isrc/h src/c/surface_gatherer.c
gcc -o build/vector.os -c -fPIC -g3 -Og -fPIC -Isrc/h src/c/vector.c
[1] /usr/lib/libc.so.6(+0x3bd70) [0x7fed78813d70] (??:0)
[2] /home/matoking/Godot/Puzzler/addons/qodot/bin/x11/libmap.so(map_data_reset+0xb9) [0x7fed50298409] (??:0)
[3] /home/matoking/Godot/Puzzler/addons/qodot/bin/x11/libmap.so(map_parser_load+0x26) [0x7fed50299c02] (??:0)
[4] /home/matoking/Godot/Puzzler/addons/qodot/bin/x11/libqodot.so(qodot_load_map+0x8f) [0x7fed74005362] (??:0)
[5] NativeScriptInstance::call(StringName const&, Variant const**, int, Variant::CallError&) (/home/matoking/git/godot/modules/gdnative/nativescript/nativescript.cpp:722)
[6] Object::call(StringName const&, Variant const**, int, Variant::CallError&) (/home/matoking/git/godot/core/object.cpp:900 (discriminator 1))
[7] Variant::call_ptr(StringName const&, Variant const**, int, Variant*, Variant::CallError&) (/home/matoking/git/godot/core/variant_call.cpp:1112 (discriminator 1))
[8] GDScriptFunction::call(GDScriptInstance*, Variant const**, int, Variant::CallError&, GDScriptFunction::CallState*) (/home/matoking/git/godot/modules/gds
import vdf
# Extracted from appinfo.vdf
data = b"""\x00appinfo\x00\x02appid\x00\xeeC\x00\x00\x00common\x00\x01name\x00Spore\x00\x01metacritic_url\x00pc/spore\x00\x01logo\x0075a96828a453586042ec4231e617070bc2f35625\x00\x01logo_small\x0075a96828a453586042ec4231e617070bc2f35625_thumb\x00\x01icon\x0000e6b5f1f7173e5a2db9978de34df03abb886430\x00\x01clienttga\x000cc129c6dad9c13e38a2cf1bc89eabe2bc4efbef\x00\x01clienticon\x009e1d443f10b72e92b855467cb1b08837126648f6\x00\x00eulas\x00\x000\x00\x01id\x0017390_eula_1\x00\x01name\x00Spore EULA 1\x00\x01url\x00http://store.steampowered.com//eula/17390_eula_1\x00\x08\x08\x01oslist\x00windows\x00\x01osarch\x00\x00\x01type\x00game\x00\x01metacritic_name\x00Spore\x00\x00small_capsule\x00\x01english\x00capsule_231x87.jpg\x00\x08\x00header_image\x00\x01english\x00header.jpg\x00\x08\x00library_assets\x00\x01library_capsule\x00en\x00\x01library_hero\x00en\x00\x01library_logo\x00en\x00\x00logo_position\x00\x01pinned_position\x00BottomCenter\x00\x02width_pct\x00*\x00\x00\x00\x02heigh
#!/bin/bash
# Simple single-command mfplat installation designed for use with protontricks
# https://github.com/Matoking/protontricks
#
# Licensed under CC0 1.0 Universal:
# https://creativecommons.org/publicdomain/zero/1.0/
PYTHON_INSTALLCAB_PATH="/tmp/mfplat-python-installcab";
INSTALLCAB_PY="python2 $PYTHON_INSTALLCAB_PATH/installcab.py";
WINETRICKS_CACHE_PATH=$(cd ~/.cache/winetricks; pwd);