Skip to content

Instantly share code, notes, and snippets.

View pg9182's full-sized avatar
💤
taking a break

pg9182

💤
taking a break
View GitHub Profile
@pg9182
pg9182 / nsfetch.bat
Last active September 25, 2024 07:31
<# ::
@@ setlocal disabledelayedexpansion
@@ powershell -NoProfile -ExecutionPolicy Bypass -Command "Invoke-Expression (Get-Content -Raw '%~f0')"
@@ if errorlevel 1 pause
@@ exit /b %errorlevel%
#>
$reg = "ghcr.io"
$img = "nsres/titanfall"
$tag = "2.0.11.0-dedicated-mp-vpkoptim.430d3bb"
@pg9182
pg9182 / inotify.ns.20220117.sh
Last active January 19, 2022 02:38
ghcr.io/pg9182/northstar-dedicated:1.20220117.git5ce2886-tf2.0.11.0-ns1.4.0
## note: first iteration was done with ghcr.io/pg9182/northstar-dedicated:1.20220116.gite7a0ed9-tf2.0.11.0-ns1.4.0 (i.e. a mostly vanilla wine 6.23 build)
## libs_wineprefix=activeds advapi32 advpack atl100 avicap32 bcrypt cng combase comctl32 comdlg32 conhost crypt32 cryptdlg cryptnet cryptui devenum dnsapi dsound explorer fltmgr gdi32 hh hidclass hidparse http ieframe iexplore imaadp32 imm32 iphlpapi kernel32 kernelbase ksecdd l3codeca light mlang mofcomp mountmgr mp3dmod mpr msacm32 msado15 msadp32 msdaps msdasql msdmo msg711 msgsm32 msisip msvcrt msvfw32 msxml msxml2 msxml3 msxml4 msxml6 ndis netio newdev notepad nsi nsiproxy ntdll ntoskrnl ole32 oleaut32 oledb32 powershell propsys qcap qedit quartz reg regedit rpcrt4 rsaenh rundll32 sapi scsiport sechost services setupapi shcore shdocvw shell32 shlwapi start tdi tzres ucrtbase urlmon usbd user32 userenv uxtheme version wbemdisp wbemprox win32u windows windowscodecs wineboot winebus winedevice winehid winemenubuilder wineps winevulkan winex11 winexinput w
@pg9182
pg9182 / inotify.ns.20220116.sh
Last active January 19, 2022 02:21
ghcr.io/pg9182/northstar-dedicated:1.20220116.gite7a0ed9-tf2.0.11.0-ns1.4.0
ctr="$(docker run --detach --tty --rm -e NS_SERVER_NAME=test ... --entrypoint /bin/ash ghcr.io/pg9182/northstar-dedicated:1.20220116.gite7a0ed9-tf2.0.11.0-ns1.4.0)" # mostly-vanilla wine 6.23
docker exec "$ctr" sudo apk add inotify-tools
docker exec "$ctr" rm -rf /home/northstar/.wine
docker exec "$ctr" inotifywait -mr /usr/lib/wine/ > inotify.wineprefix.log &
docker exec "$ctr" /usr/libexec/nsdedi __wineprefix__
docker exec "$ctr" killall inotifywait
docker exec "$ctr" inotifywait -mr /usr/lib/wine/ > inotify.nsdedi.log &
docker exec "$ctr" /usr/libexec/nsdedi " " # ctrl-c it after it finishes loading and registering to the master server
docker exec "$ctr" killall inotifywait
docker kill "$ctr"
@pg9182
pg9182 / AmpedHardpointScoreEvents.csv
Created January 13, 2022 21:50 — forked from RoyalBlue1/AmpedHardpointScoreEvents.csv
Dumped Score_Events Relating to Amped Hardpoint
We can make this file beautiful and searchable if this error is corrected: Illegal quoting in line 2.
name , splashText , medalText , pointValue, medalIcon
ControlPointCapture , #SCORE_EVENT_HARDPOINT_CAPTURED , #SCORE_EVENT_HARDPOINT_CAPTURED , 250 , $"rui/medals/hardpoint"
ControlPointCaptureAssist , #SCORE_EVENT_HARDPOINT_CAPTURE_ASSIST , #SCORE_EVENT_HARDPOINT_CAPTURE_ASSIST , 100 , $"rui/medals/hardpoint"
ControlPointHold , #SCORE_EVENT_HARDPOINT_HOLD , #SCORE_EVENT_HARDPOINT_HOLD , 25 , $"rui/medals/hardpoint"
ControlPointTake , #SCORE_EVENT_HARDPOINT_TAKE , #SCORE_EVENT_HARDPOINT_TAKE , 25 , $"rui/medals/hardpoint"
ControlPointAmped , #SCORE_EVENT_HARDPOINT_AMPED , #SCORE_EVENT_HARDPOINT_AMPED , 250 , $"rui/medals/hardpoint"
ControlPointAmpedHold , #SCORE_EVENT_HARDPOINT_AMPED_HOLD , #SCORE_EVENT_HARDPOINT_AMPED_HOLD , 50 , $"rui/medals/hardpoint"
ControlPointNeutralize , #SCORE_EVENT_HARDPOINT_NEUTRALIZED , #SCORE_EVENT_HARDPOINT_NEUTRALIZED , 150 , $"rui/medals/hardpoint"
ControlPointNeutralizeAssist , #SCORE_EVENT_HARDPOINT_NEUTRALIZE_ASSIST , #SCORE_EVENT_HARDPOINT_NEUTRALIZE_ASSIST , 75 , $"rui/me
@pg9182
pg9182 / dxstub.c
Last active December 29, 2021 00:32
// dxstub - d3d11/dxgi stub for northstar
// 2021-12-28 05:52:30 EST
// llvm-mingw-20211002-msvcrt-x86_64/bin/x86_64-w64-mingw32-clang -Wl,--file-alignment=4096 -fdiagnostics-color=always -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -g -D_WIN32_WINNT=0x0601 -gstrict-dwarf -gdwarf-2 -msse3 -shared -o dxstub.dll dxstub.c dxstub.def
#include <stdbool.h>
#include <stdio.h>
#define COBJMACROS
#define INITGUID
#include <windows.h>
002c:fixme:winediag:LdrInitializeThunk wine-staging 7.0-rc2 is a testing version containing experimental patches.
002c:fixme:winediag:LdrInitializeThunk Please mention your exact version when filing bug reports on winehq.org.
002c:err:wineboot:process_run_key Error running cmd L"C:\\windows\\system32\\winemenubuilder.exe -a -r" (126).
010c:fixme:msvcp:_Locinfo__Locinfo_ctor_cat_cstr (0000000000FAF520 1 C) semi-stub
0108:fixme:ver:GetCurrentPackageId (00000000007CD8C0 0000000000000000): stub
0108:fixme:heap:RtlSetHeapInformation 0000000030B00000 0 00000000007CC8A0 4 stub
0140:trace:dxgi:CreateDXGIFactory1 iid {7b7166ec-21c7-44ae-b21a-c9ae321ae369}, factory 0x3c71fc80.
0140:fixme:d3d:wined3d_guess_card No card selector available for card vendor 0000 (using GL_RENDERER "llvmpipe (LLVM 13.0.0, 256 bits)").
0140:fixme:ntdll:NtQuerySystemInformation info_class SYSTEM_PERFORMANCE_INFORMATION
0140:trace:dxgi:dxgi_factory_create Created factory 0x36bc1510.
$ bash -c 'tput reset; exec &> >(tee d3d11.trace); WINEDEBUG=trace+d3d11 wine Titanfall2.exe -dedicated; read thingy; wineserver -k; exit'
$ cat d3d11.trace | grep d3d11:d | cut -d: -f4 | cut -d\  -f1 | sort | uniq -c | sort -n # after server start
      1 d3d11_buffer_Release
      1 d3d11_device_context_AddRef
      1 d3d11_device_context_CSSetConstantBuffers
      1 d3d11_device_context_End
@pg9182
pg9182 / dxvk-d3d11-headless.patch
Last active December 27, 2021 17:30
Unfortunately, this is useless due to https://github.com/wine-mirror/wine/commit/88eb322830af566a83c3d55592cf7898c506a27b (and it'll be obsoleted by my custom stub), but I'll keep this patch around just in case.
diff --git a/src/d3d11/d3d11_swapchain.cpp b/src/d3d11/d3d11_swapchain.cpp
index b803d37c..7eb72c8f 100644
--- a/src/d3d11/d3d11_swapchain.cpp
+++ b/src/d3d11/d3d11_swapchain.cpp
@@ -397,7 +397,7 @@ namespace dxvk {
presenterDesc.numPresentModes = PickPresentModes(false, presenterDesc.presentModes);
presenterDesc.fullScreenExclusive = PickFullscreenMode();
- m_presenter = new vk::Presenter(m_window,
+ m_presenter = new vk::Presenter(

1. Simplest configuration

I have successfully run a dedicated server (~1840 MB RAM, ~8 GB virtual, ~110ms CPU time on a Ryzen 5 3500U) on Fedora 35:

  • ext4 filesystem (I've had issues with other ones -- ntfs3 seems to work most of the time, but I've had tf2 complain about corrupted files a few times; overlayfs has the same issue unless it's backed by ext4)
  • Titanfall 2 (copied game files, not even fully installed, no origin)
  • Northstar v1.1.2
  • Mesa 21.3.2 (distro packages)
  • Wine 7.0.0-rc2 (distro packages)
#define AppVersion "1.0.0"
#define AppSource "custom server stuff"
[Setup]
AppName=Northstar
AppVerName=Northstar {#AppVersion}
AppVersion={#AppVersion}
AppId=northstar.tf
UninstallDisplayName=Northstar
AppPublisher=BobTheBob9