{ stdenv
, lib
, fetchFromGitHub
, unstableGitUpdater
, cmake
, pkg-config
, zlib
, libvgm
, inih
}:

stdenv.mkDerivation {
  pname = "vgmplay-libvgm";
  version = "unstable-2024-01-03";

  src = fetchFromGitHub {
    owner = "ValleyBell";
    repo = "vgmplay-libvgm";
    rev = "7db1c63c056d79a8f9f533aa7eb82b7fdf7d456c";
    hash = "sha256-GjBwu8Y/lOI8SLO4SrAWcntQIwKe/hXuh9tKbOPHQiA=";
  };

  nativeBuildInputs = [ cmake pkg-config ];

  buildInputs = [ zlib libvgm inih ];

  postInstall = ''
    install -Dm644 ../VGMPlay.ini $out/share/vgmplay/VGMPlay.ini
  '';

  passthru.updateScript = unstableGitUpdater {
    url = "https://github.com/ValleyBell/vgmplay-libvgm.git";
  };

  meta = with lib; {
    mainProgram = "vgmplay";
    homepage = "https://github.com/ValleyBell/vgmplay-libvgm";
    description = "New VGMPlay, based on libvgm";
    license = licenses.unfree; # no licensing text anywhere yet
    maintainers = with maintainers; [ OPNA2608 ];
    platforms = platforms.all;
  };
}
