From 003877e022df22f047390d519b785f97de9808b3 Mon Sep 17 00:00:00 2001 From: John Ramsden Date: Fri, 22 Jun 2018 23:16:51 -0700 Subject: [PATCH 1/3] [com.blizzard.Diablo3] Initial Diablo III flatpak --- com.blizzard.Diablo3/com.blizzard.Diablo3.yml | 157 ++++++++++++++++++ 1 file changed, 157 insertions(+) create mode 100644 com.blizzard.Diablo3/com.blizzard.Diablo3.yml diff --git a/com.blizzard.Diablo3/com.blizzard.Diablo3.yml b/com.blizzard.Diablo3/com.blizzard.Diablo3.yml new file mode 100644 index 0000000..ce4f86c --- /dev/null +++ b/com.blizzard.Diablo3/com.blizzard.Diablo3.yml @@ -0,0 +1,157 @@ +app-id: com.blizzard.Diablo3 +branch: stable + +runtime: org.winepak.Platform +runtime-version: 3.0 +sdk: org.winepak.Sdk + +base: com.blizzard.BattleNet.BaseApp +base-version: stable + +command: diablo3 + +inherit-extensions: + - org.winepak.Platform.Compat32 + - org.winepak.Platform.Extension.corefonts + +add-extensions: + org.winepak.Platform.Wine: + directory: lib/wine + version: 3.10-staging + add-ld-path: lib + no-autodownload: false + + org.winepak.Platform.Wine.Compat32: + directory: lib/wine-32bit + version: 3.10-staging + add-ld-path: lib + no-autodownload: false + + org.winepak.Platform.Extension.vcrun2015: + directory: lib/extension/vcrun2015 + version: 3.0 + add-ld-path: lib + no-autodownload: false + +tags: + - proprietary + +finish-args: + - --socket=x11 + - --socket=pulseaudio + - --share=ipc + - --share=network + - --device=dri + - --allow=multiarch + # --allow=devel is required to launch Diablo III + # + # Without it the game will partily launch then crash. + # + # Ideally flatpak applications shouldn't have --allow=devel, so this needs to + # be investigated. + - --allow=devel + +modules: + - name: setup-wine + buildsystem: simple + build-commands: + - mkdir -p /app/lib/wine + + - name: setup-wine-compat32 + buildsystem: simple + build-commands: + - mkdir -p /app/lib/wine-32bit + + - name: setup-vcrun2015 + buildsystem: simple + build-commands: + - mkdir -p /app/lib/extension/vcrun2015 + + - name: diablo-3 + only-arches: + - x86_64 + buildsystem: simple + build-commands: + - install -d /app/bin + - install d3-installer /app/bin + - install diablo3 /app/bin + # - install -Dm644 com.blizzard.Diablo3.appdata.xml /app/share/appdata/com.blizzard.Diablo3.appdata.xml + # - install -Dm644 com.blizzard.Diablo3.desktop /app/share/applications/com.blizzard.Diablo3.desktop + sources: + - type: script + dest-filename: d3-installer + commands: + - if [ -z "$WINEPREFIX" ] ; then + - ' echo "No wine prefix set or is empty, abort."' + - ' exit 1' + - fi + - + - if [ -e "${WINEPREFIX}/dosdevices/c:/Program Files (x86)/Battle.net" ] ; then + - ' echo "This prefix already has an exisiting ''Diablo III'' install at ${WINEPREFIX}"' + - ' echo "In order to install ''Diablo III'' you must move or delete the current prefix."' + - ' exit 1' + - fi + - + - echo "Downloading installer..." + - curl -L --progress-bar --output "${XDG_CACHE_HOME}/d3-installer.exe" "https://www.battle.net/download/getInstallerForGame?os=win&version=LIVE&gameProgram=DIABLO_3" + - + - echo "Setting-up wine prefix..." + - wineboot + - + - echo "Installing Extension(s)..." + - echo "Installing corefonts..." + - source /app/lib/extension/corefonts/bin/corefonts-install64 + - + - echo "Installing vcrun2015..." + - source /app/lib/extension/vcrun2015/bin/vcrun2015-install64 + - + - echo "Performing tweak(s)..." + - echo "Disable winemenubuilder.exe..." + - wine64 reg add 'HKEY_CURRENT_USER\Software\Wine\DllOverrides' /v winemenubuilder.exe /d '' /f + - + - echo "Clear Windows Version" + - wine64 reg delete 'HKLM\Software\Microsoft\Windows\CurrentVersion' /v SubVersionNumber /f + - wine64 reg delete 'HKLM\Software\Microsoft\Windows\CurrentVersion' /v VersionNumber /f + - wine64 reg delete 'HKLM\Software\Microsoft\Windows NT\CurrentVersion' /v CSDVersion /f + - wine64 reg delete 'HKLM\Software\Microsoft\Windows NT\CurrentVersion' /v CurrentBuildNumber /f + - wine64 reg delete 'HKLM\Software\Microsoft\Windows NT\CurrentVersion' /v CurrentVersion /f + - wine64 reg delete 'HKLM\System\CurrentControlSet\Control\ProductOptions' /v ProductType /f + - wine64 reg delete 'HKLM\System\CurrentControlSet\Control\ServiceCurrent' /v OS /f + - wine64 reg delete 'HKLM\System\CurrentControlSet\Control\Windows' /v CSDVersion /f + - wine64 reg delete 'HKCU\Software\Wine' /v Version /f + - wine64 reg delete 'HKLM\System\CurrentControlSet\Control\ProductOptions' /v ProductType /f + - + - echo "Set Windows Version to 10" + - wine64 reg add 'HKLM\System\CurrentControlSet\Control\ProductOptions' /v ProductType /d 'WinNT' /f + - wine64 reg add 'HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion' /v CSDVersion /d '' /f + - wine64 reg add 'HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion' /v CurrentBuildNumber /d '10240' /f + - wine64 reg add 'HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion' /v CurrentVersion /d '10.0' /f + - wine64 reg add 'HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Windows' /v CSDVersion /t REG_DWORD /d 00000000 /f + - + - echo "Create Battle.net config" + - mkdir -p "${WINEPREFIX}/dosdevices/c:/users/${USER}/Application Data/Battle.net" + - 'echo "{ \"Client\": { \"HardwareAcceleration\": false, \"Sound\": { \"Enabled\": false } } }" > "${WINEPREFIX}/dosdevices/c:/users/${USER}/Application Data/Battle.net/Battle.net.config"' + - + - echo "Installing application..." + - wine64 "${XDG_CACHE_HOME}/d3-installer.exe" + - + - echo "Installer finished" + - type: script + dest-filename: diablo3 + commands: + - export WINEARCH=win64 + - + - if ! [ -e "${WINEPREFIX}/dosdevices/c:/Program Files (x86)/Battle.net" ] ; then + - ' if ! /app/bin/d3-installer; then' + - ' echo "Installation failed, abort."' + - ' exit 1' + - ' fi' + - fi + - + - wine64 "C:/Program Files (x86)/Battle.net/Battle.net Launcher.exe" + # - type: file + # path: com.blizzard.Diablo3.appdata.xml + # - type: file + # path: com.blizzard.Diablo3.desktop + + From c450d67f8ebe6b96ddcea346083e67987c7a6668 Mon Sep 17 00:00:00 2001 From: John Ramsden Date: Sat, 14 Jul 2018 23:50:09 -0700 Subject: [PATCH 2/3] [com.blizzard.Diablo3] Working Diablo III flatpak --- com.blizzard.Diablo3/README.md | 36 +++++++++++ .../com.blizzard.Diablo3.appdata.xml | 37 +++++++++++ .../com.blizzard.Diablo3.desktop | 10 +++ com.blizzard.Diablo3/com.blizzard.Diablo3.yml | 64 +++++++++++++------ 4 files changed, 126 insertions(+), 21 deletions(-) create mode 100644 com.blizzard.Diablo3/README.md create mode 100644 com.blizzard.Diablo3/com.blizzard.Diablo3.appdata.xml create mode 100644 com.blizzard.Diablo3/com.blizzard.Diablo3.desktop diff --git a/com.blizzard.Diablo3/README.md b/com.blizzard.Diablo3/README.md new file mode 100644 index 0000000..b121141 --- /dev/null +++ b/com.blizzard.Diablo3/README.md @@ -0,0 +1,36 @@ +# Diablo III + +Massively-multiplayer online role-playing game + +## Status + +| Arch | Installs | Runs | Notes | +| ----- | -------- | ---- | ----- | +| 32bit | N/A | N/A | | +| 64bit | Yes | Yes | Installs & runs. | + +## Build & Install +### Repo +#### 32bit + + flatpak-builder --arch=i386 --force-clean builds --repo=winepak com.blizzard.Diablo3.yml + flatpak --user install winepak com.blizzard.Diablo3 + +#### 64bit + + flatpak-builder --arch=x86_64 --force-clean builds --repo=winepak com.blizzard.Diablo3.yml + flatpak --user install winepak com.blizzard.Diablo3 + +### Direct +#### 32bit + + flatpak-builder --user --arch=i386 --force-clean --install builds com.blizzard.Diablo3.yml + +#### 64bit + + flatpak-builder --user --arch=x86_64 --force-clean --install builds com.blizzard.Diablo3.yml + +## Run + + flatpak run com.blizzard.Diablo3 + diff --git a/com.blizzard.Diablo3/com.blizzard.Diablo3.appdata.xml b/com.blizzard.Diablo3/com.blizzard.Diablo3.appdata.xml new file mode 100644 index 0000000..b0b60e6 --- /dev/null +++ b/com.blizzard.Diablo3/com.blizzard.Diablo3.appdata.xml @@ -0,0 +1,37 @@ + + + com.blizzard.Diablo3.desktop + CC0-1.0 + LicenseRef-proprietary + Diablo III + Action role-playing game + +

The demonically-besieged world of Sanctuary needs heroes. Will you heed the call? Diablo III is an action role-playing game from Blizzard Entertainment for the PC and Mac.

+
+ + winepak + Blizzard Entertainment + + https://diablo3.com + https://us.battle.net/support/en/games/diablo3 + https://us.battle.net/forums/en/d3/3354739/ + + + Game + ActionRolePlaying + + + + 1024 + + + + + +
    +
  • Initial release of Diablo III via winepak.
  • +
+
+
+
+
diff --git a/com.blizzard.Diablo3/com.blizzard.Diablo3.desktop b/com.blizzard.Diablo3/com.blizzard.Diablo3.desktop new file mode 100644 index 0000000..2802d76 --- /dev/null +++ b/com.blizzard.Diablo3/com.blizzard.Diablo3.desktop @@ -0,0 +1,10 @@ +[Desktop Entry] +Name=Diablo III +Comment=Action role-playing game +Exec=diablo3 %U +StartupNotify=true +Terminal=false +Type=Application +MimeType=application/x-ms-dos-executable;application/x-msi;application/x-ms-shortcut; +Categories=Game;RolePlaying; +Keywords=DiabloIII;Blizzard;ARPG; diff --git a/com.blizzard.Diablo3/com.blizzard.Diablo3.yml b/com.blizzard.Diablo3/com.blizzard.Diablo3.yml index ce4f86c..11c3fa3 100644 --- a/com.blizzard.Diablo3/com.blizzard.Diablo3.yml +++ b/com.blizzard.Diablo3/com.blizzard.Diablo3.yml @@ -42,6 +42,7 @@ finish-args: - --share=ipc - --share=network - --device=dri + - --filesystem=xdg-documents - --allow=multiarch # --allow=devel is required to launch Diablo III # @@ -67,34 +68,38 @@ modules: build-commands: - mkdir -p /app/lib/extension/vcrun2015 - - name: diablo-3 + - name: diablo3 only-arches: - x86_64 buildsystem: simple build-commands: - install -d /app/bin - - install d3-installer /app/bin + - install diablo3-installer /app/bin - install diablo3 /app/bin - # - install -Dm644 com.blizzard.Diablo3.appdata.xml /app/share/appdata/com.blizzard.Diablo3.appdata.xml - # - install -Dm644 com.blizzard.Diablo3.desktop /app/share/applications/com.blizzard.Diablo3.desktop + - install -Dm644 com.blizzard.Diablo3.appdata.xml /app/share/appdata/com.blizzard.Diablo3.appdata.xml + - install -Dm644 com.blizzard.Diablo3.desktop /app/share/applications/com.blizzard.Diablo3.desktop sources: - type: script - dest-filename: d3-installer + dest-filename: diablo3-installer commands: - if [ -z "$WINEPREFIX" ] ; then - ' echo "No wine prefix set or is empty, abort."' - ' exit 1' - fi - + - source /app/bin/battlenet-installer "battlenet://D3" + - + - if [[ $? != 0 ]] ; then + - ' echo "Battle.net installer failed, abort."' + - ' exit 1' + - fi + - - if [ -e "${WINEPREFIX}/dosdevices/c:/Program Files (x86)/Battle.net" ] ; then - ' echo "This prefix already has an exisiting ''Diablo III'' install at ${WINEPREFIX}"' - ' echo "In order to install ''Diablo III'' you must move or delete the current prefix."' - ' exit 1' - fi - - - echo "Downloading installer..." - - curl -L --progress-bar --output "${XDG_CACHE_HOME}/d3-installer.exe" "https://www.battle.net/download/getInstallerForGame?os=win&version=LIVE&gameProgram=DIABLO_3" - - - echo "Setting-up wine prefix..." - wineboot - @@ -108,6 +113,24 @@ modules: - echo "Performing tweak(s)..." - echo "Disable winemenubuilder.exe..." - wine64 reg add 'HKEY_CURRENT_USER\Software\Wine\DllOverrides' /v winemenubuilder.exe /d '' /f + - + - echo "Set DirectDrawRenderer to opengl..." + - wine64 reg add "HKEY_CURRENT_USER\Software\Wine\Direct3D" /v "DirectDrawRenderer" /d "opengl" /f + - + - echo "Disable Multisampling..." + - wine64 reg add "HKEY_CURRENT_USER\Software\Wine\Direct3D" /v "Multisampling" /d "disabled" /f + - + - echo "Set OffScreenRenderingMode to pbuffer..." + - wine64 reg add "HKEY_CURRENT_USER\Software\Wine\Direct3D" /v "OffScreenRenderingMode" /d "pbuffer" /f + - + - echo "Enable GLSL..." + - wine64 reg add "HKEY_CURRENT_USER\Software\Wine\Direct3D" /v "UseGLSL" /d "enabled" /f + - + - echo "Set VertexShaderMode to hardware..." + - wine64 reg add "HKEY_CURRENT_USER\Software\Wine\Direct3D" /v "VertexShaderMode" /d "hardware" /f + - + - echo "Enable DXVA2..." + - wine64 reg add "HKEY_CURRENT_USER\Software\Wine\DXVA2" /v "backend" /d "va" /f - - echo "Clear Windows Version" - wine64 reg delete 'HKLM\Software\Microsoft\Windows\CurrentVersion' /v SubVersionNumber /f @@ -128,13 +151,6 @@ modules: - wine64 reg add 'HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion' /v CurrentVersion /d '10.0' /f - wine64 reg add 'HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Windows' /v CSDVersion /t REG_DWORD /d 00000000 /f - - - echo "Create Battle.net config" - - mkdir -p "${WINEPREFIX}/dosdevices/c:/users/${USER}/Application Data/Battle.net" - - 'echo "{ \"Client\": { \"HardwareAcceleration\": false, \"Sound\": { \"Enabled\": false } } }" > "${WINEPREFIX}/dosdevices/c:/users/${USER}/Application Data/Battle.net/Battle.net.config"' - - - - echo "Installing application..." - - wine64 "${XDG_CACHE_HOME}/d3-installer.exe" - - - echo "Installer finished" - type: script dest-filename: diablo3 @@ -142,16 +158,22 @@ modules: - export WINEARCH=win64 - - if ! [ -e "${WINEPREFIX}/dosdevices/c:/Program Files (x86)/Battle.net" ] ; then - - ' if ! /app/bin/d3-installer; then' + - ' source /app/bin/diablo3-installer' + - ' if [[ $? != 0 ]] ; then' - ' echo "Installation failed, abort."' - ' exit 1' - ' fi' - fi - - - wine64 "C:/Program Files (x86)/Battle.net/Battle.net Launcher.exe" - # - type: file - # path: com.blizzard.Diablo3.appdata.xml - # - type: file - # path: com.blizzard.Diablo3.desktop + - echo "Verify \"Battle.net Helper.exe\" doesn't launch..." + - if [ -f "${WINEPREFIX}/dosdevices/c:/Program Files (x86)/Battle.net/Battle.net*/Battle.net Helper.exe" ] ; then + - ' mv "${WINEPREFIX}/dosdevices/c:/Program Files (x86)/Battle.net/Battle.net*/Battle.net Helper.exe" "${WINEPREFIX}/dosdevices/c:/Program Files (x86)/Battle.net/Battle.net*/Battle.net Helper.exe.bak"' + - fi + - + - wine64 "${WINEPREFIX}/dosdevices/c:/Program Files (x86)/Battle.net/Battle.net Launcher.exe" "battlenet://D3" + - type: file + path: com.blizzard.Diablo3.appdata.xml + - type: file + path: com.blizzard.Diablo3.desktop From f0ee7506fe993fef543bb00342d3faef5e77498a Mon Sep 17 00:00:00 2001 From: John Ramsden Date: Thu, 19 Jul 2018 23:10:43 -0700 Subject: [PATCH 3/3] [com.blizzard.Diablo3] Add icon & optimizations --- .../com.blizzard.Diablo3.desktop | 1 + com.blizzard.Diablo3/com.blizzard.Diablo3.svg | 48 ++++++++++++++++ com.blizzard.Diablo3/com.blizzard.Diablo3.yml | 57 +++++++++++-------- 3 files changed, 82 insertions(+), 24 deletions(-) create mode 100644 com.blizzard.Diablo3/com.blizzard.Diablo3.svg diff --git a/com.blizzard.Diablo3/com.blizzard.Diablo3.desktop b/com.blizzard.Diablo3/com.blizzard.Diablo3.desktop index 2802d76..075849e 100644 --- a/com.blizzard.Diablo3/com.blizzard.Diablo3.desktop +++ b/com.blizzard.Diablo3/com.blizzard.Diablo3.desktop @@ -1,6 +1,7 @@ [Desktop Entry] Name=Diablo III Comment=Action role-playing game +Icon=com.blizzard.Diablo3.svg Exec=diablo3 %U StartupNotify=true Terminal=false diff --git a/com.blizzard.Diablo3/com.blizzard.Diablo3.svg b/com.blizzard.Diablo3/com.blizzard.Diablo3.svg new file mode 100644 index 0000000..c1a7398 --- /dev/null +++ b/com.blizzard.Diablo3/com.blizzard.Diablo3.svg @@ -0,0 +1,48 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/com.blizzard.Diablo3/com.blizzard.Diablo3.yml b/com.blizzard.Diablo3/com.blizzard.Diablo3.yml index 11c3fa3..b78bb51 100644 --- a/com.blizzard.Diablo3/com.blizzard.Diablo3.yml +++ b/com.blizzard.Diablo3/com.blizzard.Diablo3.yml @@ -13,6 +13,7 @@ command: diablo3 inherit-extensions: - org.winepak.Platform.Compat32 - org.winepak.Platform.Extension.corefonts + - org.winepak.Platform.Extension.vcrun2015 add-extensions: org.winepak.Platform.Wine: @@ -26,12 +27,6 @@ add-extensions: version: 3.10-staging add-ld-path: lib no-autodownload: false - - org.winepak.Platform.Extension.vcrun2015: - directory: lib/extension/vcrun2015 - version: 3.0 - add-ld-path: lib - no-autodownload: false tags: - proprietary @@ -51,6 +46,8 @@ finish-args: # Ideally flatpak applications shouldn't have --allow=devel, so this needs to # be investigated. - --allow=devel + - --env=MESA_GLTHREAD=true + - --env=__GL_THREADED_OPTIMIZATIONS=1 modules: - name: setup-wine @@ -78,6 +75,7 @@ modules: - install diablo3 /app/bin - install -Dm644 com.blizzard.Diablo3.appdata.xml /app/share/appdata/com.blizzard.Diablo3.appdata.xml - install -Dm644 com.blizzard.Diablo3.desktop /app/share/applications/com.blizzard.Diablo3.desktop + - install -Dm664 com.blizzard.Diablo3.svg /app/share/icons/hicolor/scalable/apps/com.blizzard.Diablo3.svg sources: - type: script dest-filename: diablo3-installer @@ -86,7 +84,7 @@ modules: - ' echo "No wine prefix set or is empty, abort."' - ' exit 1' - fi - - + - - source /app/bin/battlenet-installer "battlenet://D3" - - if [[ $? != 0 ]] ; then @@ -94,22 +92,6 @@ modules: - ' exit 1' - fi - - - if [ -e "${WINEPREFIX}/dosdevices/c:/Program Files (x86)/Battle.net" ] ; then - - ' echo "This prefix already has an exisiting ''Diablo III'' install at ${WINEPREFIX}"' - - ' echo "In order to install ''Diablo III'' you must move or delete the current prefix."' - - ' exit 1' - - fi - - - - echo "Setting-up wine prefix..." - - wineboot - - - - echo "Installing Extension(s)..." - - echo "Installing corefonts..." - - source /app/lib/extension/corefonts/bin/corefonts-install64 - - - - echo "Installing vcrun2015..." - - source /app/lib/extension/vcrun2015/bin/vcrun2015-install64 - - - echo "Performing tweak(s)..." - echo "Disable winemenubuilder.exe..." - wine64 reg add 'HKEY_CURRENT_USER\Software\Wine\DllOverrides' /v winemenubuilder.exe /d '' /f @@ -131,6 +113,9 @@ modules: - - echo "Enable DXVA2..." - wine64 reg add "HKEY_CURRENT_USER\Software\Wine\DXVA2" /v "backend" /d "va" /f + - + - echo "Disable UseXVidMode" + - wine64 reg add 'HKEY_CURRENT_USER\Software\Wine\X11 Driver' /v UseXVidMode /d N /f - - echo "Clear Windows Version" - wine64 reg delete 'HKLM\Software\Microsoft\Windows\CurrentVersion' /v SubVersionNumber /f @@ -151,12 +136,34 @@ modules: - wine64 reg add 'HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion' /v CurrentVersion /d '10.0' /f - wine64 reg add 'HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Windows' /v CSDVersion /t REG_DWORD /d 00000000 /f - + # This doesn't seem to persist + # - echo "Setting battlenet launcher to 32bit mode" + # - mkdir -p "${WINEPREFIX}/dosdevices/c:/users/${USER}/Application Data/Battle.net" + # - 'cat < "${WINEPREFIX}/dosdevices/c:/users/${USER}/Application Data/Battle.net/Battle.net.config"' + # - '{ ' + # - ' "Client": { ' + # - ' "HardwareAcceleration": false,' + # - ' "Sound": { ' + # - ' "Enabled": false ' + # - ' } ' + # - ' }, ' + # - ' "Games": { ' + # - ' "diablo3": { ' + # - ' "Run64Bit": false, ' + # - ' "Run64BitSet": true ' + # - ' } ' + # - ' } ' + # - '} ' + # - 'EOF' + - - echo "Installer finished" - type: script dest-filename: diablo3 commands: - export WINEARCH=win64 - - + - export __GL_SHADER_DISK_CACHE=1 + - export __GL_SHADER_DISK_CACHE_PATH=${WINEPREFIX} + - - if ! [ -e "${WINEPREFIX}/dosdevices/c:/Program Files (x86)/Battle.net" ] ; then - ' source /app/bin/diablo3-installer' - ' if [[ $? != 0 ]] ; then' @@ -175,5 +182,7 @@ modules: path: com.blizzard.Diablo3.appdata.xml - type: file path: com.blizzard.Diablo3.desktop + - type: file + path: com.blizzard.Diablo3.svg