PC Up To 90% - Method To Reduce Download For Upgrading

Discussion in 'TSW General Discussion' started by subwayg0at, Sep 8, 2026 at 6:01 PM.

  1. subwayg0at

    subwayg0at Well-Known Member

    Joined:
    Jan 6, 2024
    Messages:
    287
    Likes Received:
    515
    I'm currently sketching a tool based on HDiffPatch that works old_dlc_pak + diff_patch = new_dlc_pak, that could cut the downloading data for existing dlcs when upgrading to TSW7 by roughly 30-90%*, depending on owned DLC. This could greatly benefit players who have less-than-desired bandwidth and/or a big list of owned DLCs.

    Edit: With more than 15 DLC and accepting your full patch set — which for most libraries is far less than 10GB, that number only applies to owning nearly everything like I do — this method typically saves 70-85%. Even with a modest budget of just 1-2GB, a handful of DLC can already save several GB to 10GB+, and a large library (60+) can save 60-100GB+ — the exact number depends on which DLC you own, since small vehicle-pack DLCs save less in absolute terms than large routes, and routes themselves vary in how much actually changed.
    For my case (98 DLC) it could save 89.9% of the downloading.

    *Want more information? See results below.


    The basic procedure:
    • The maker of the diff file receives the new pak file once early access opens, and generate a diff patch between the TSW7 pak and the TSW6 pak on their PC, then send it off somewhere.
    • The user, who already has the TSW6 pak installed, downloads the diff + tool, and upon running the tool it automatically detects TSW6 pak location by auto detecting steam, combine it with the diff patches provided, move it to a specific location by changing the number in the file path from 6 to 7, resulting in the same file at the same location as if they were downloaded from Steam. The user could then begin the TSW7 install on Steam, and Steam would find the file verified and will skip download the entire thing.

    The problem is the output will be byte-by-byte same as Dovetail's own TSW7 files. The tool can also only diff from files it recognises byte-for-byte - which, unfortunately, cannot rule out pirates who have the same official-released version of the DLC as the maker - anything else is rejected. I am not sure whether this as a tool is acceptable to release or I should hold off, although when you do know the concept, it is a fairly easy tool to build, and HDiffPatch is already widely used by lots of games on the market. This will also handle DLCs only, the core game itself is not included.

    Unless DTG explicitly agrees to this, I won't act as the maker or distribute any diff files. I do want to note that this is technically one of the best ways to cut downloading data when the new iteration releases.
     
    Last edited: Sep 10, 2026 at 9:31 PM
    • Like Like x 4
    • Helpful Helpful x 1
  2. Myron

    Myron Well-Known Member

    Joined:
    Jun 24, 2023
    Messages:
    3,262
    Likes Received:
    3,668
    Wouldn't one technically also be able to relocate the TSW6 DLC files to TSW7 and then let the game update them, hoping that it has to do less work for that matter?
     
  3. subwayg0at

    subwayg0at Well-Known Member

    Joined:
    Jan 6, 2024
    Messages:
    287
    Likes Received:
    515
    It's not the game updating them.
    It might be possible to load TSW6 DLC Paks in TSW7 if you are lucky, but if you play on Epic or Steam, it will be unhappy once it gets to verification because it can't match any historical versions that look the same for an incremental patch, either when during a fresh install or an update, basically deleting it and redownloading the full package.

    So historically it didn't work either.
     
    • Helpful Helpful x 1
  4. subwayg0at

    subwayg0at Well-Known Member

    Joined:
    Jan 6, 2024
    Messages:
    287
    Likes Received:
    515
    Code:
    0 of 155 matched DLCs have EXACTLY 0 byte size difference
    
    smallest 15 (by absolute delta_bytes):
      +4 bytes  (+0.0000%)  mbta providence/stoughton line hsp46
      +121 bytes  (+0.0000%)  flixtrain br 193 vectron loco
      +161 bytes  (+0.0000%)  fife circle line & levenmouth rail link route
      -487 bytes  (-0.0000%)  lirr m3 emu
      +1,482 bytes  (+0.0010%)  br class 20 'chopper' loco
      -1,734 bytes  (-0.0000%)  the holiday express - runaway elf
      -1,764 bytes  (-0.0000%)  berninalinie: tirano - ospizio bernina route
      +2,033 bytes  (+0.0010%)  csx c40-8w loco
      +2,050 bytes  (+0.0010%)  rhb arosa aggregates pack
      +2,330 bytes  (+0.0000%)  cane creek: thompson - potash route
      +3,357 bytes  (+0.0030%)  db br 204 loco
      -3,969 bytes  (-0.0020%)  rail head treatment train
      -4,120 bytes  (-0.0030%)  db br 155 loco
      +4,142 bytes  (+0.0000%)  s-bahn zentralschweiz: luzern - sursee route
      -4,456 bytes  (-0.0020%)  rail operations group br class 37/7
    
    the <0.05% bucket range:
      count: 152, delta_bytes range: -855,444 to 4,423,675
    So, not possible for direct moving over.
     
    • Helpful Helpful x 1
  5. KitsuneKiera

    KitsuneKiera Well-Known Member

    Joined:
    Apr 29, 2023
    Messages:
    247
    Likes Received:
    593
    TSW 5 DLC would load and work in TSW 4, also TSW 5 DLC would load and work in TSW 6, However you couldn’t run 6 DLC in 5.
     
  6. subwayg0at

    subwayg0at Well-Known Member

    Joined:
    Jan 6, 2024
    Messages:
    287
    Likes Received:
    515
    I got the results, conclusion:
    With more than 15 DLC and accepting your full patch set — which for most libraries is far less than 10GB, that number only applies to owning nearly everything like I do — this method typically saves 70-85%. Even with a modest budget of just 1-2GB, a handful of DLC can already save several GB to 10GB+, and a large library (60+) can save 60-100GB+ — the exact number depends on which DLC you own, since small vehicle-pack DLCs save less in absolute terms than large routes, and routes themselves vary in how much actually changed.
    For my case (98 DLC) it could save 89.9% of the downloading.


    The base game itself (~7.5GB) always has to be downloaded no matter what, this tool only ever touches DLC files. So if you own very little DLC, that fixed base-game cost dominates your total and the percentage saved does not look outstanding. If you own a lot, that fixed cost gets diluted into a much bigger pool of nearly-free-to-patch DLC and the percentage climbs a lot.

    DLCs owned / Full download / Actual download / % saved
    1 11.9GB 7.9GB 33.6%
    2 16.3GB 8.3GB 49.2%
    3 20.7GB 8.7GB 58.1%
    5 29.5GB 9.4GB 68.0%
    8 42.6GB 10.5GB 75.3%
    15 73.4GB 13.2GB 82.0%
    25 117.2GB 16.9GB 85.6%
    40 183.0GB 22.6GB 87.7%
    60 270.8GB 30.1GB 88.9%
    92 (everything I own TSW6) 411.2GB 42.1GB 89.8%
    This is an average-case expectation — it assumes a random draw of DLCs, using the average patched-cost-per-DLC (384.2MB) across all 98 ownable ones. There are some DLCs that have extremely large patches, like Dresden - Leipzig (1.3GB patch), which have a negative impact on the ratio.

    Also, not everyone wants to download an open-ended patch size sight unseen, so I also ran the numbers with a hard cap on how big your downloaded size could make an impact if you have the very same DLC ownership as me, best case scenario:

    Total patch budget / Patch data spent / Actual download Saved / % saved / DLC patched
    50MB 48.9MB 418.5GB 19.0GB 4.4% 9/92
    100MB 99.6MB 405.4GB 32.1GB 7.3% 10/92
    250MB 248.7MB 385.7GB 51.8GB 11.8% 27/92
    500MB 499.7MB 367.6GB 69.9GB 16.0% 31/92
    1GB 1.0GB 338.0GB 99.5GB 22.7% 41/92
    2GB 2.0GB 295.7GB 141.8GB 32.4% 49/92
    5GB 4.9GB 210.9GB 226.6GB 51.8% 66/92
    10GB 9.8GB 111.3GB 326.2GB 74.6% 81/92
    unlimited 16.0GB 44.3GB 393.2GB 89.9% 92/92

    DLC / Full size / Patch size / Patch as % of full
    • SanFranSanJose 3.6GB 2.1MB 0.06%
    • TSW2WestSomersetRailway 2.2GB 1.9MB 0.08%
    • NewYorkTrenton 6.2GB 5.6MB 0.09%
    • BRClass805 433.7MB 677.8KB 0.15%
    • CrossCityLine 4.8GB 12.9MB 0.26%
    • WCMLTrentValleyCreweMiltonKeynes 13.1GB 50.7MB 0.38%
    • BRClass390 323.3MB 1.2MB 0.39%
    • MMLLeicesterDerbyNottingham 4.4GB 20.9MB 0.47%
    • LongIslandRailRoadExtended 7.9GB 43.6MB 0.54%
    • CajonPass 7.9GB 51.8MB 0.64%
    • BCC_Class170_VP01 301.5MB 2.1MB 0.68%
    • HolidayExpress 1.1GB 10.3MB 0.89%
    • ECWClass313 150.9MB 1.4MB 0.92%
    • BKRLUL38Stock 235.1MB 2.4MB 1.00%
    • ECWClass171 414.8MB 5.2MB 1.24%
    • FlyingScotsman 359.7MB 4.5MB 1.24%
    • SanBernardino 8.8GB 114.8MB 1.27%
    • BR294 199.5MB 2.7MB 1.35%
    • PrestonBlackpool 8.9GB 124.0MB 1.37%
    • BRClass380 238.6MB 3.3MB 1.39%
    • NewJourneysBR423 133.8MB 1.9MB 1.43%
    • DSNClass20 127.9MB 2.0MB 1.53%
    • MedwayValleyLineStroodTonbridge 10.0GB 155.9MB 1.53%
    • LUBakerlooLine 4.3GB 68.8MB 1.56%
    • SEH_DB_Class66 210.1MB 3.3MB 1.56%
    • BPEAcela 180.6MB 2.8MB 1.56%
    • SFSNurnbergIngolstadt 7.4GB 119.3MB 1.57%
    • BRClass700 173.0MB 2.8MB 1.61%
    • NewJourneys1972 157.5MB 2.6MB 1.63%
    • BCC_Regional_Railways 188.6MB 3.1MB 1.63%
    • LIRRM3 127.9MB 2.1MB 1.66%
    • FlixTrain 303.0MB 5.2MB 1.72%
    • NewJourneysSoutheasternHighspeed 252.3MB 4.4MB 1.73%
    • SanBernardinoGameplayPack 110.2MB 1.9MB 1.77%
    • GreatWesternBlue 426.1MB 7.9MB 1.86%
    • NRMBR101 167.2MB 3.2MB 1.89%
    • BirminghamCrewe 11.4GB 231.5MB 1.99%
    • NorthRhineMainLine 2.7GB 55.1MB 2.01%
    • Mittenwaldbahn 11.8GB 246.9MB 2.05%
    • HarlemLine 4.8GB 102.6MB 2.09%
    • BRClass158 209.6MB 4.4MB 2.10%
    • BostonProvidenceGameplayPack 412.8MB 9.3MB 2.26%
    • NJTALP45DP 138.5MB 3.1MB 2.26%
    • BostonProvidence 5.0GB 121.1MB 2.36%
    • RivieraLine 6.4GB 158.2MB 2.42%
    • TSW2TorontoIndustrial 2.3GB 61.1MB 2.55%
    • NorthLondonLine 5.5GB 147.2MB 2.59%
    • BRClass220 205.6MB 5.5MB 2.65%
    • LiberecStaraPaka 9.5GB 273.1MB 2.81%
    • LeipzigS2SBahn 3.6GB 104.3MB 2.83%
    • TSW2PaddingtonReading 4.5GB 132.0MB 2.84%
    • GWRHSTFarewellRailtour 637.6MB 18.1MB 2.84%
    • GlasgowCathcart 3.1GB 92.0MB 2.87%
    • BostonWorcester 8.0GB 245.9MB 2.99%
    • IsleofWightV2 2.8GB 86.8MB 3.05%
    • SpiritOfSteam 5.0GB 157.5MB 3.07%
    • TSW2WSRClass33 83.7MB 2.6MB 3.12%
    • DarlingtonSaltburn 3.9GB 137.5MB 3.40%
    • MannheimKaiserslautern 6.8GB 239.2MB 3.42%
    • SFSKasselWurzburg 10.5GB 371.4MB 3.45%
    • GlossopLine 3.7GB 133.2MB 3.48%
    • EastCoastway 3.4GB 124.7MB 3.54%
    • BremenOldenburg 4.6GB 169.3MB 3.58%
    • MainSpessartBahn 3.1GB 119.1MB 3.71%
    • BerninaLine 4.7GB 180.1MB 3.75%
    • KolnAachen 3.9GB 151.9MB 3.79%
    • LondonBrighton 6.3GB 247.5MB 3.83%
    • ThamesValleyBranches 4.1GB 164.0MB 3.90%
    • PrestonCarlisle 16.6GB 692.6MB 4.08%
    • GoblinLine 5.2GB 226.9MB 4.28%
    • DresdenChemnitz 6.6GB 297.4MB 4.42%
    • DresdenRiesa 6.5GB 305.0MB 4.55%
    • LondonFaversham 7.1GB 334.2MB 4.59%
    • FrankfurtFulda 9.7GB 458.8MB 4.63%
    • LeedsManchester 4.5GB 215.1MB 4.66%
    • EastCoastMainline 6.4GB 305.6MB 4.68%
    • LeftRhine 5.7GB 285.5MB 4.86%
    • SalzburgRosenheim 6.3GB 322.5MB 4.97%
    • MarseilleAvignon 3.7GB 190.2MB 5.02%
    • Vorarlberg 6.9GB 385.3MB 5.43%
    • WCMLSouth 8.1GB 457.1MB 5.51%
    • FifeCircle 7.1GB 417.0MB 5.75%
    • MetrolinkAntelopeValleyLine 8.7GB 512.7MB 5.78%
    • Semmeringbahn 6.4GB 393.4MB 6.01%
    • Morristown 9.0GB 609.8MB 6.59%
    • EdinburghGlasgow 5.1GB 351.8MB 6.79%
    • FrankfurtSBahn 8.1GB 584.4MB 7.04%
    • CardiffCityCommuter 3.1GB 236.0MB 7.35%
    • PeakForestRailway 6.6GB 561.2MB 8.30%
    • Maintalbahn 4.4GB 411.4MB 9.17%
    • DresdenLeipzig 10.9GB 1.3GB 11.75%
    • ZwolleGroningen 6.6GB 821.3MB 12.14%
    • HamburgLubeck 4.3GB 545.5MB 12.42%
    • AiredaleWharfedaleLines (full download only) 5.9GB 5.9GB 100.00%
    • BRClass333 (full download only) 177.1MB 177.1MB 100.00%
    • DBBR412ICE4 (full download only) 255.7MB 255.7MB 100.00%
    • MiamiCommuter (full download only) 5.8GB 5.8GB 100.00%
    • NurembergWurzburg (full download only) 8.5GB 8.5GB 100.00%
    • Tri-Rail-GP49PH (full download only) 171.2MB 171.2MB 100.00%

    Disclaimer: I own 99 DLCs now and cannot test the full range. Source code included.
     

    Attached Files:

    Last edited: Sep 10, 2026 at 9:57 PM
  7. TemporaryAl

    TemporaryAl Well-Known Member

    Joined:
    Jul 14, 2023
    Messages:
    338
    Likes Received:
    328
    In another world DTG would've been competent enough to think of this six game versions ago, and included it as a tool that runs on newgame install, but they likely won't want to ever have anything to do with this because as we've clearly seen not even they internally know what version of what DLC file gets pushed out at any specific time.
     

Share This Page