Git Product home page Git Product logo

wadverifier's Introduction

LICENSE GitHub go.mod Go version of a Go module GoReportCard example

ko-fi

WADverifier

WADverifier is a small Command Line Interface tool written in Golang. It is used to quickly check if a DOOM-Engine based IWAD is valid or not, and up to date. Optionally, WADVerifier can also check through a json file to check the validity of some PWAD files. You can create your own json database if desired!

Usage

wadverifier [-v] [-no-enter] [-resfile <filename.json>] <wad.wad[ wad2.wad ...]>
== Flags ==
-v : Be more verbose in case of warning messages
-no-enter : Removes the check to press ENTER at the end of the program

== Arguments ==
-resfile <filename>: opens a custom WAD resources file (.json format).

Features

WADverifier currently supports these features :

IWAD Identification

WADverifier can identify these IWADs:

  • DOOM v1.0 up to 1.9
  • The Ultimate Doom
  • DOOM II v1.666 up to 1.9
  • DOOM & DOOM II - Unity versions
  • Final DOOM (Plutonia & TNT)
  • Master levels of DooM II
  • FreeDOOM v0.8 up to 0.13.0
  • Heretic v1.0 up to 1.3
  • Hexen v1.0 & v1.1 (+ Dark Citadel's Addon)
  • Strife v1.0 up to 1.31 (+ Veteran Edition)
  • HacX v1.0 up to 1.2
  • Chex Quest 1, 2, and 3 (v1.0 & 1.4)
  • SIGIL v1.0 up to 1.21
  • SIGIL II v1.0
  • REKKR (v1.16 only, both PWAD or Standalone)
  • DOOM 3 XBOX
  • DOOM/DOOM2 XBLA
  • DOOM 3 BFG (+ NERVE.WAD)
  • DOOM 64 (NightDive Studios)
  • And many many more !

Latest version detection

WADverifier looks up if your IWAD is the latest version or not. If it's not, a message tells you what to do to get the latest version of your file !

Drag & Drop (Windows only)

Windows users can directly drag their IWAD files to the WADverifier executable to quickly verify its validity!

Color support

Because having a white-only text in a commandline application is not friendly enough, WADVerifier uses ANSI to color messages. All systems should support it without any issue.

Custom declarations

WadVerifier support custom lists (in .json format), that can be useful to declare PWAD declarations. Check pwaddata.json for an example.

Pre-Requisites for compilation

  • Golang 1.17 or newer
  • Package color from user Fatih (go get github.com/fatih/color)
  • Package go-ansi from user k0kubun (go get github.com/k0kubun/go-ansi)

Then, inside the project folder, write go build.

Screenshot

Testing Image

Why are you using MD5 as a hash checking?

MD5 is the hash format that is checked by all known DOOM sourceports. We might support SHA-1 hashings in the near future after all...

ToDo List

  • Add support for GZDoom .pk3 IWADs (Action DooM / AD2:UB / Adventures of Square / W:BoA / Harmony / Blasphemer / ...)
  • Get the earlier "Unity Doom" wad versions from the September 2020 update, and its subwads. (1.0 to 1.4)
  • Probably a few code optimizations here and there.
  • A small database of PWADs with revision changes could be nice.
  • Support an online database that can be read upon launching the program.
  • Get missing entries of many, many IWADs.

Huge thanks to

  • Mike Swanson (Chungy) for adding several IWADs to the list !

Licence

This program is licenced under GPLv3.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.