about summary refs log tree commit diff
path: root/nixpkgs/pkgs/misc/emulators/dgen-sdl/default.nix
blob: 4a76ee0df0262253c7a09a8cf36dc05b22213cb6 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
{ lib, stdenv
, fetchurl
, libarchive
, doxygen
, SDL
}:

let
  pname = "dgen-sdl";
  version = "1.33";
in stdenv.mkDerivation {
  inherit pname version;

  src = fetchurl {
    url = "https://sourceforge.net/projects/dgen/files/dgen/${version}/${pname}-${version}.tar.gz";
    hash = "sha256-meLAYBfCKHPHf4gYbrzAmGckTrbgQsdjuwlLArje9h4=";
  };

  buildInputs = [ SDL libarchive ];

  configureFlags = [
    "--enable-joystick"
    "--enable-debugger"
    "--enable-debug-vdp"
    "--enable-pico" # experimental
    "--enable-vgmdump"
    "--with-star=no" # Needs ASM support
    "--with-musa"
    "--with-cyclone=no" # Needs ASM support
    "--with-mz80"
    "--with-cz80"
    "--with-drz80=no" # Needs ASM support
    "--with-dz80"
  ];

  meta = with lib; {
    homepage = "https://dgen.sourceforge.net/";
    description = "Sega Genesis/Mega Drive emulator";
    longDescription = ''
      DGen/SDL is a free, open source emulator for Sega Genesis/Mega Drive
      systems. DGen was originally written by Dave, then ported to SDL by Joe
      Groff and Phil K. Hornung in 1998.

      It features:

      - Game Genie/Hex codes support
      - PAL/NTSC, fullscreen modes
      - Joypad/joystick support
      - Mouse support
      - Highly configurable controls
      - OpenGL textured video output
      - Portable (64‐bit, endian safe), runs in Windows using MinGW
      - Screenshots, demos recording and playback
      - Musashi (generic) and StarScream (x86‐only) CPU cores
      - Cyclone 68000 and DrZ80 (both ARM‐only) CPU cores
      - CZ80 (generic) and MZ80 (generic and x86‐only versions)
      - 16‐bit, 8000 to 48000Hz sound output
      - Support for 8, 15, 16, 24 and 32 bpp modes
      - Archived/compressed ROMs support
      - M68K debugger (contributed by Edd Barrett)
      - Z80 debugger
      - hqx and scale2x upscaling filters
      - VGM dumping
    '';
    license = licenses.mit;
    maintainers = with maintainers; [ AndersonTorres ];
    platforms = with platforms; unix;
  };
}
# TODO: implement configure options