nixpkgs mirror (for testing)
github.com/NixOS/nixpkgs
nix
1{
2 lib,
3 stdenv,
4 fetchurl,
5 libarchive,
6 SDL,
7}:
8
9stdenv.mkDerivation rec {
10 pname = "dgen-sdl";
11 version = "1.33";
12
13 src = fetchurl {
14 url = "https://sourceforge.net/projects/dgen/files/dgen/${version}/${pname}-${version}.tar.gz";
15 hash = "sha256-meLAYBfCKHPHf4gYbrzAmGckTrbgQsdjuwlLArje9h4=";
16 };
17
18 buildInputs = [
19 SDL
20 libarchive
21 ];
22
23 configureFlags = [
24 (lib.enableFeature (!stdenv.hostPlatform.isDarwin) "sdltest")
25 "--enable-debug-vdp"
26 "--enable-debugger"
27 "--enable-joystick"
28 "--enable-pico" # experimental
29 "--enable-vgmdump"
30 "--with-cyclone=no" # Needs ASM support
31 "--with-cz80"
32 "--with-drz80=no" # Needs ASM support
33 "--with-dz80"
34 "--with-musa"
35 "--with-mz80"
36 "--with-star=no" # Needs ASM support
37 ];
38
39 env.NIX_CFLAGS_COMPILE = lib.optionalString stdenv.cc.isClang "-Wno-reserved-user-defined-literal";
40
41 meta = with lib; {
42 homepage = "https://dgen.sourceforge.net/";
43 description = "Sega Genesis/Mega Drive emulator";
44 longDescription = ''
45 DGen/SDL is a free, open source emulator for Sega Genesis/Mega Drive
46 systems. DGen was originally written by Dave, then ported to SDL by Joe
47 Groff and Phil K. Hornung in 1998.
48
49 It features:
50
51 - Game Genie/Hex codes support
52 - PAL/NTSC, fullscreen modes
53 - Joypad/joystick support
54 - Mouse support
55 - Highly configurable controls
56 - OpenGL textured video output
57 - Portable (64‐bit, endian safe), runs in Windows using MinGW
58 - Screenshots, demos recording and playback
59 - Musashi (generic) and StarScream (x86‐only) CPU cores
60 - Cyclone 68000 and DrZ80 (both ARM‐only) CPU cores
61 - CZ80 (generic) and MZ80 (generic and x86‐only versions)
62 - 16‐bit, 8000 to 48000Hz sound output
63 - Support for 8, 15, 16, 24 and 32 bpp modes
64 - Archived/compressed ROMs support
65 - M68K debugger (contributed by Edd Barrett)
66 - Z80 debugger
67 - hqx and scale2x upscaling filters
68 - VGM dumping
69 '';
70 license = licenses.mit;
71 maintainers = with maintainers; [ ];
72 platforms = with platforms; unix;
73 };
74}
75# TODO: implement configure options