bolrog / d2dx

D2DX is a complete solution to make Diablo II run well on modern PCs, with high fps and better resolutions.
GNU General Public License v3.0
420 stars 49 forks source link

FIXED/SOLVED - Suggestion>Update method #44

Open 0x4e44 opened 3 years ago

0x4e44 commented 3 years ago

Would love to have app or some sort of way to easy update the Wrapper.

Even a script that Downloads something off the web with some curl commands and puts it into the right directory then launch the Diablo II game./Plugy.

Like a Launcher like Slash Diablo with all the updates of the new wrapper and everything.

eleriaqueen commented 3 years ago

Personally I go to https://github.com/bolrog/d2dx/releases/ and check release notes, then download.

Edit : There doesn't seem to be a way to do a quick Curl command to download latest D2DX release because they're named after the version number which changes each time.

Were they all named d2dx.zip I think the direct link would always have been https://github.com/bolrog/d2dx/releases/latest/download/d2dx.zip

bolrog commented 3 years ago

A good suggestion, I should name the zip consistently at a minimum.

bolrog commented 3 years ago

Release 505 onward will omit the version nr in the zip name.

eleriaqueen commented 3 years ago

Can confirm the following URL points to latest release.

https://github.com/bolrog/d2dx/releases/latest/download/d2dx.zip

For the laziest of lazies I whipped up a windows batch file which downloads latest release using curl :
d2dx_downloader_v1_win32.zip

0x4e44 commented 3 years ago

Made a script that can be ran with powershell.

-Download and update the wrapper into the right directory

and then launch it

Update wrapper.zip

Thanks again !

eleriaqueen commented 3 years ago

I modified your script to use $env:TEMP+'\d2dx.zip' as temp directory which is less likely to fail (on my computer c:\temp didn't exist and script failed) and made a second Registry-based script which is useful if Diablo II was properly installed. Oh and I removed the line which auto-launches the game because executable shortcuts exist for a reason.

Edit : Should be good now ; D2DX Update Wrapper (Manual Path & Registry) v0.2.zip

Further Edit (Version 0.3 does things slightly cleanlier and puts documentation and licenses inside d2dx-addendum inside Diablo II folder) : D2DX Update Wrapper (Manual Path & Registry) v0.3.zip

0x4e44 commented 3 years ago

I modified your script to use $env:TEMP+'\d2dx.zip' as temp directory which is less likely to fail (on my computer c:\temp didn't exist and script failed) and made a second Registry-based script which is useful if Diablo II was properly installed. Oh and I removed the line which auto-launches the game because executable shortcuts exist for a reason.

Edit : Should be good now ; D2DX Update Wrapper (Manual Path & Registry) v0.2.zip

Further Edit (Version 0.3 does things slightly cleanlier and puts documentation and licenses inside d2dx-addendum inside Diablo II folder) : D2DX Update Wrapper (Manual Path & Registry) v0.3.zip

That is just magnificent! I really like that. That Will help me to be able to be on the latest and greatest all the time :) Thanks mate !

updawg commented 3 years ago

You should have the script do a compare hash to see if the file is different indicating a new version and alert the user if there is a change.

Get the file hashes

$hashSrc = Get-FileHash $file -Algorithm "SHA256" $hashDest = Get-FileHash $file2 -Algorithm "SHA256"

Compare the hashes & note this in the log

If ($hashSrc.Hash -ne $hashDest.Hash) { Add-Content -Path $cLogFile -Value " Source File Hash: $hashSrc does not equal Existing Destination File Hash: $hashDest the files are NOT EQUAL." }

eleriaqueen commented 3 years ago

I am writing a script which does file hashes, it is moderately verbose and prints hash results in Powershell prompt.

eleriaqueen commented 3 years ago

D2DX Automated Updater v0.5a.zip (Typo Fix)

bolrog commented 3 years ago

Fantastic, thanks!

IAmTrial commented 3 years ago

I think an updater like this should exist as a separate repo, as GitHub issues is not exactly the best place to post automated updating systems where it can get lost in a crowd of bug reports or feature requests.

eleriaqueen commented 3 years ago

You might be right @IAmTrial, I was just not confident enough it would be useful so I posted it for the small handful of people who found it a pain to update.