Skip to content

feat: VGC-Ally SteamOS/ROG Ally port foundation#22

Open
Vet-TV wants to merge 8 commits into
ImmerNochNoah:mainfrom
Vet-TV:ally-dev
Open

feat: VGC-Ally SteamOS/ROG Ally port foundation#22
Vet-TV wants to merge 8 commits into
ImmerNochNoah:mainfrom
Vet-TV:ally-dev

Conversation

@Vet-TV

@Vet-TV Vet-TV commented Jun 9, 2026

Copy link
Copy Markdown

Adds the complete SteamOS + ASUS ROG Ally Z1 Extreme optimization layer on top of upstream VGC v0.0.14.

Native plugin:

  • native/v4l2/vgc_v4l2.c: V4L2 MMAP capture backend (C, GPLv3)
  • native/v4l2/CMakeLists.txt: builds libvgc_v4l2.so
  • Assets/Plugins/Linux/x86_64/libvgc_v4l2.so: prebuilt for x86_64 All 6 symbols exported (T): enumerate/open/grab/width/height/close deps: libc only, 17K stripped

Unity overlay scripts (no upstream files modified):

  • Assets/Scripts/Platform/LinuxV4L2CaptureProvider.cs P/Invoke wrapper; pumps YUYV->RGBA frames into Texture2D per Update
  • Assets/Scripts/Input/AllyInputBridge.cs Gamepad->VGC method bridge (Menu=settings, R-stick=volume, etc) Calls existing VideoGameCaptureController methods directly
  • Assets/Scripts/Settings/AllySettingsPatch.cs Redirects Settings.json to XDG path (~/.config/vgc-ally/) on Linux; migrates existing settings on first run

Infrastructure:

  • build/linux/launch_vgc_ally.sh: gamemoderun wrapper + preflight checks
  • build/flatpak/com.vettv.VGCAlly.json: Flatpak manifest
  • .github/workflows/build-linux.yml: CI (native plugin -> Unity IL2CPP)
  • docs/BUILDING.md: full dev setup guide
  • ALLY_README.md: user-facing install/usage docs

Upstream: ImmerNochNoah/VideoGameCapture (GPLv3)
Fork: Vet-TV/VideoGameCapture-Ally

Vet-TV and others added 8 commits June 9, 2026 00:46
Adds the complete SteamOS + ASUS ROG Ally Z1 Extreme optimization
layer on top of upstream VGC v0.0.14.

Native plugin:
- native/v4l2/vgc_v4l2.c: V4L2 MMAP capture backend (C, GPLv3)
- native/v4l2/CMakeLists.txt: builds libvgc_v4l2.so
- Assets/Plugins/Linux/x86_64/libvgc_v4l2.so: prebuilt for x86_64
  All 6 symbols exported (T): enumerate/open/grab/width/height/close
  deps: libc only, 17K stripped

Unity overlay scripts (no upstream files modified):
- Assets/Scripts/Platform/LinuxV4L2CaptureProvider.cs
    P/Invoke wrapper; pumps YUYV->RGBA frames into Texture2D per Update
- Assets/Scripts/Input/AllyInputBridge.cs
    Gamepad->VGC method bridge (Menu=settings, R-stick=volume, etc)
    Calls existing VideoGameCaptureController methods directly
- Assets/Scripts/Settings/AllySettingsPatch.cs
    Redirects Settings.json to XDG path (~/.config/vgc-ally/)
    on Linux; migrates existing settings on first run

Infrastructure:
- build/linux/launch_vgc_ally.sh: gamemoderun wrapper + preflight checks
- build/flatpak/com.vettv.VGCAlly.json: Flatpak manifest
- .github/workflows/build-linux.yml: CI (native plugin -> Unity IL2CPP)
- docs/BUILDING.md: full dev setup guide
- ALLY_README.md: user-facing install/usage docs

Upstream: ImmerNochNoah/VideoGameCapture (GPLv3)
Fork: Vet-TV/VideoGameCapture-Ally
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant