Skip to content
This repository has been archived by the owner on Nov 7, 2020. It is now read-only.
/ wfupdate Public archive

Reverse-engineered Warframe launcher replacement (currently Linux+Wine only)

License

Notifications You must be signed in to change notification settings

zekesonxx/wfupdate

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

32 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

wfupdate

Build Status

wfupdate is a work-in-progress replacement to the official Warframe launcher. It started out as (the third version of) a tool to parse the log file produced by the Warframe launcher, because the launcher is broken under Wine and simply says "Checking for new content..." indefinitely until it finishes updating. wfupdate now supports updating and launching the game under Wine, with preparations made to eventually support Windows as well.

The tool is mostly functional as-is, however it's missing numerous features, most notably a GUI and setting the game up in a fresh wineprefix.


The Warframe launcher works in two stages, Stage 1, which is done by the original launcher, and Stage 2, which is done by running Warframe.exe. You can find more information about it in LAUNCHERPROTOCOL.md. This tool can do both stages, although it still has a fair share of issues with both.

As for the log parsing part of it, I've stuck a xz-compressed copy of a log I've been using to test here (2MB uncompressed), which should produce the output bytes: 7 MB/4 GB 0.156%; files: 395/26212 1.506%.

Limitations/Gotchas

  • Can use 64-bit Wine, however as far as I'm aware no-one has gotten the game to work (yet) in 64-bit Wine.
Past this point is sort of a mess. I use this README for planning and such, and this way it keeps it around in git.

Progress

  • Meta
    • Config File
    • Threading
  • Parse Warframe log outputs
    • Refine log parsing code to be smoother
  • Launcherless:
    • Game playing
    • Updating
      • Stage 1 Updating (replacing Launcher.exe)
        • Checking which files need updates
        • Updating those files
      • Stage 2 Updating (running Warframe.exe)
        • Automatic restart if the download stalls
      • Git tracking of file changes
    • Repairing
    • "Optimizing", whatever the fuck that is
  • Launcher:
    • Not needed, thanks to REing the launcher protocol.
    • Should be able to operate 100% Launcherless
  • GUI
    • Basic GUI
    • Setup Wizard
    • Editing game settings (video, chat, etc)
  • Setup in clean wineprefix from scratch
    • Make a wineprefix
    • Run winetricks to install dependencies
    • Run Warframe.msi w/ user prompts
      • Uh, maybe.
      • Can setup all the necessary files without the msi
      • Does the game care about the registry?
      • Research needed
      • If it does care, can we manipulate the registry in our favor somehow?
      • And, if it does care, should we have a secondary Wine-side binary, or should we use Wine regedit to change things?
    • Use custom Wine versions (grab from PoL?)
    • PlayOnLinux integration
  • Windows support
    • Disable Wine selection/managing in Windows
    • Run the game directly, without going through Wine
    • Deal with the lack of execvp(3)

Semi-In-Order TODO List

  • Implement a config file
  • Rework the paths module
  • Rework the wine module a run module (+ allow for future Windows support)
    • dx10, dx11, language
    • wineprefix setting
    • wine executable setting
    • 32bit/64bit switch
  • Wine version selection
  • DX10/11 switches
  • Rework the CLI with two-tiered subcommands, split into cli module
    • Run
    • Config
    • Update
    • Housekeeping (repair/"optimize")
  • Game setup from scratch
  • GUI

CLI Release Checklist

  • Wine executable/LD_LIBRARY_PATH setting
  • Rework update into cli module
  • Add an update check for stage 2 (kill the game at BytesToDownload)
  • Rework parse into cli module
  • Add repair command
  • Fix up wine-ver into wine, get into cli module, implement setting to config vars
  • wfupdate wine winecfg or something like that
  • Crash Watchdog
  • Basic usage guide

Post-CLI Release Checklist

  • Fix the awful and broken config file system
  • Refactoring
    • Imports
    • Make an update module
    • Do some DRY improvements
  • Fix the horribly fragmented CLI flags
  • Fix wfpath dealing with
  • Cache stage 1 index.txt

About

Reverse-engineered Warframe launcher replacement (currently Linux+Wine only)

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages