Installer diablo-hellfire-cd

files:
- cncddraw: https://github.com/FunkyFr3sh/cnc-ddraw/releases/download/v4.6.0.0/cnc-ddraw.zip
- patch101: http://savagesteel.free.fr/diablo/files/Hellfire.Patch.1.01.7z
game:
  arch: win32
  exe: $GAMEDIR/$gamepath/hellfire.exe
  prefix: $GAMEDIR
installer:
- write_file:
    content: '#!/bin/bash

      file="$1"; hash="$2"; echo "[INFO] Verifying $(basename "$file") sha256 checksum...";
      if [ $(sha256sum "$file" | cut -c 1-64) = "$hash" ]; then echo "[INFO] ...checksum
      OK!"; else echo "[ERROR] ...checksum FAILED!"; exit 1; fi

      '
    file: $CACHE/checkhash.sh
- execute:
    args: +x $CACHE/checkhash.sh
    file: chmod
- execute:
    args: cncddraw $cncddraw_sha256
    file: $CACHE/checkhash.sh
- extract:
    dst: $CACHE/patch101
    src: patch101
- execute:
    args: '"$CACHE/patch101/Hellfire Patch 1.01.exe" $patch101_sha256'
    file: $CACHE/checkhash.sh
- insert-disc:
    requires: ../HELLFIRE/hellfire.exe
- task:
    executable: $DISC/../HELLFIRE/SETUP.EXE
    name: wineexec
    prefix: $GAMEDIR
- task:
    executable: $CACHE/patch101/Hellfire Patch 1.01.exe
    name: wineexec
    prefix: $GAMEDIR
- execute:
    command: diabdat=$(find "$GAMEDIR" -type f -name diabdat.mpq | head -n 1); ln
      -rs "$diabdat" "$GAMEDIR/$gamepath/diabdat.mpq"
- execute:
    command: printf "\xeb" | dd of="$GAMEDIR/$gamepath/storm.dll" bs=1 count=1 seek=52177
      conv=notrunc
- execute:
    command: printf "\xeb" | dd of="$GAMEDIR/$gamepath/hellfrui.dll" bs=1 count=1
      seek=31122 conv=notrunc
- extract:
    dst: $GAMEDIR/$gamepath
    src: cncddraw
require-binaries: sha256sum
requires: diablo
variables:
  cncddraw_sha256: 1633d30bc80ecae60db97e881a4c804911e300dcb280d58ea8b8ddda2e1dd1ac
  gamepath: drive_c/SIERRA/HELLFIRE
  patch101_sha256: 4efe01b3d29e17733e1422467a9bd69b7af76b6f2284fc4bc7371fc9561a5184
wine:
  overrides:
    ddraw.dll: n
description: Installs the game from original CD. Applies the last official patch (v1.01).
  Patches a single byte in storm.dll to allow playing without the CD. Patches a single
  byte in hellfrui.dll to enable multiplayer.
game_slug: diablo-hellfire
gogslug: diablo
humblestoreid: ''
installer_slug: diablo-hellfire-cd
name: 'Diablo: Hellfire'
notes: "When prompted by the original installer, be sure to check both \"Music Files\"\
  \ and \"Hi-res voice files\".\r\n\r\nNote: Game menus are graphically broken, but\
  \ you can get them to appear if you repeatedly press up or down keyboard arrows.\
  \ The menu entry which doesn't show the pentagram sign is the one you have selected."
runner: wine
script:
  files:
  - cncddraw: https://github.com/FunkyFr3sh/cnc-ddraw/releases/download/v4.6.0.0/cnc-ddraw.zip
  - patch101: http://savagesteel.free.fr/diablo/files/Hellfire.Patch.1.01.7z
  game:
    arch: win32
    exe: $GAMEDIR/$gamepath/hellfire.exe
    prefix: $GAMEDIR
  installer:
  - write_file:
      content: '#!/bin/bash

        file="$1"; hash="$2"; echo "[INFO] Verifying $(basename "$file") sha256 checksum...";
        if [ $(sha256sum "$file" | cut -c 1-64) = "$hash" ]; then echo "[INFO] ...checksum
        OK!"; else echo "[ERROR] ...checksum FAILED!"; exit 1; fi

        '
      file: $CACHE/checkhash.sh
  - execute:
      args: +x $CACHE/checkhash.sh
      file: chmod
  - execute:
      args: cncddraw $cncddraw_sha256
      file: $CACHE/checkhash.sh
  - extract:
      dst: $CACHE/patch101
      src: patch101
  - execute:
      args: '"$CACHE/patch101/Hellfire Patch 1.01.exe" $patch101_sha256'
      file: $CACHE/checkhash.sh
  - insert-disc:
      requires: ../HELLFIRE/hellfire.exe
  - task:
      executable: $DISC/../HELLFIRE/SETUP.EXE
      name: wineexec
      prefix: $GAMEDIR
  - task:
      executable: $CACHE/patch101/Hellfire Patch 1.01.exe
      name: wineexec
      prefix: $GAMEDIR
  - execute:
      command: diabdat=$(find "$GAMEDIR" -type f -name diabdat.mpq | head -n 1); ln
        -rs "$diabdat" "$GAMEDIR/$gamepath/diabdat.mpq"
  - execute:
      command: printf "\xeb" | dd of="$GAMEDIR/$gamepath/storm.dll" bs=1 count=1 seek=52177
        conv=notrunc
  - execute:
      command: printf "\xeb" | dd of="$GAMEDIR/$gamepath/hellfrui.dll" bs=1 count=1
        seek=31122 conv=notrunc
  - extract:
      dst: $GAMEDIR/$gamepath
      src: cncddraw
  require-binaries: sha256sum
  requires: diablo
  variables:
    cncddraw_sha256: 1633d30bc80ecae60db97e881a4c804911e300dcb280d58ea8b8ddda2e1dd1ac
    gamepath: drive_c/SIERRA/HELLFIRE
    patch101_sha256: 4efe01b3d29e17733e1422467a9bd69b7af76b6f2284fc4bc7371fc9561a5184
  wine:
    overrides:
      ddraw.dll: n
slug: diablo-hellfire-cd
steamid: null
version: CD
year: 1997
{
  "game_slug": "diablo-hellfire",
  "version": "CD",
  "description": "Installs the game from original CD. Applies the last official patch (v1.01). Patches a single byte in storm.dll to allow playing without the CD. Patches a single byte in hellfrui.dll to enable multiplayer.",
  "notes": "When prompted by the original installer, be sure to check both \"Music Files\" and \"Hi-res voice files\".\r\n\r\nNote: Game menus are graphically broken, but you can get them to appear if you repeatedly press up or down keyboard arrows. The menu entry which doesn't show the pentagram sign is the one you have selected.",
  "name": "Diablo: Hellfire",
  "year": 1997,
  "steamid": null,
  "gogslug": "diablo",
  "humblestoreid": "",
  "runner": "wine",
  "slug": "diablo-hellfire-cd",
  "installer_slug": "diablo-hellfire-cd",
  "script": {
    "files": [
      {
        "cncddraw": "https://github.com/FunkyFr3sh/cnc-ddraw/releases/download/v4.6.0.0/cnc-ddraw.zip"
      },
      {
        "patch101": "http://savagesteel.free.fr/diablo/files/Hellfire.Patch.1.01.7z"
      }
    ],
    "game": {
      "arch": "win32",
      "exe": "$GAMEDIR/$gamepath/hellfire.exe",
      "prefix": "$GAMEDIR"
    },
    "installer": [
      {
        "write_file": {
          "content": "#!/bin/bash\nfile=\"$1\"; hash=\"$2\"; echo \"[INFO] Verifying $(basename \"$file\") sha256 checksum...\"; if [ $(sha256sum \"$file\" | cut -c 1-64) = \"$hash\" ]; then echo \"[INFO] ...checksum OK!\"; else echo \"[ERROR] ...checksum FAILED!\"; exit 1; fi\n",
          "file": "$CACHE/checkhash.sh"
        }
      },
      {
        "execute": {
          "args": "+x $CACHE/checkhash.sh",
          "file": "chmod"
        }
      },
      {
        "execute": {
          "args": "cncddraw $cncddraw_sha256",
          "file": "$CACHE/checkhash.sh"
        }
      },
      {
        "extract": {
          "dst": "$CACHE/patch101",
          "src": "patch101"
        }
      },
      {
        "execute": {
          "args": "\"$CACHE/patch101/Hellfire Patch 1.01.exe\" $patch101_sha256",
          "file": "$CACHE/checkhash.sh"
        }
      },
      {
        "insert-disc": {
          "requires": "../HELLFIRE/hellfire.exe"
        }
      },
      {
        "task": {
          "executable": "$DISC/../HELLFIRE/SETUP.EXE",
          "name": "wineexec",
          "prefix": "$GAMEDIR"
        }
      },
      {
        "task": {
          "executable": "$CACHE/patch101/Hellfire Patch 1.01.exe",
          "name": "wineexec",
          "prefix": "$GAMEDIR"
        }
      },
      {
        "execute": {
          "command": "diabdat=$(find \"$GAMEDIR\" -type f -name diabdat.mpq | head -n 1); ln -rs \"$diabdat\" \"$GAMEDIR/$gamepath/diabdat.mpq\""
        }
      },
      {
        "execute": {
          "command": "printf \"\\xeb\" | dd of=\"$GAMEDIR/$gamepath/storm.dll\" bs=1 count=1 seek=52177 conv=notrunc"
        }
      },
      {
        "execute": {
          "command": "printf \"\\xeb\" | dd of=\"$GAMEDIR/$gamepath/hellfrui.dll\" bs=1 count=1 seek=31122 conv=notrunc"
        }
      },
      {
        "extract": {
          "dst": "$GAMEDIR/$gamepath",
          "src": "cncddraw"
        }
      }
    ],
    "require-binaries": "sha256sum",
    "requires": "diablo",
    "variables": {
      "cncddraw_sha256": "1633d30bc80ecae60db97e881a4c804911e300dcb280d58ea8b8ddda2e1dd1ac",
      "gamepath": "drive_c/SIERRA/HELLFIRE",
      "patch101_sha256": "4efe01b3d29e17733e1422467a9bd69b7af76b6f2284fc4bc7371fc9561a5184"
    },
    "wine": {
      "overrides": {
        "ddraw.dll": "n"
      }
    }
  }
}
Back to game