/hypseus-singe

Hypseus is a SDL2 version of Daphne and Singe. Laserdisc game emulation.

Primary LanguageC++GNU General Public License v3.0GPL-3.0

Hypseus Singe

Hypseus Singe

Hypseus is a fork of Matt Ownby's Daphne.

A program to play laserdisc arcade games on a PC, Mac or Raspberry Pi.

This version includes Singe support for Fan Made and American Laser Games.

Features:

  • SDL2 support
  • Updated MPEG2 decoder
  • Daphne VLDP 32bit upgrade
  • Integrated (active) bezel support
  • Daphne and Singe 4k 4Gb+ M2V support
  • Singe libretro emulation path integration
  • Singe Joystick, Lightgun EV_ABS [mouse] support
  • Singe 2 full 32bit overlay support (details below)
  • Sinden support in Singe games
  • For Singe games list see here.
  • Daphne alternate overlay choices
  • SDL_GameController (hotplug) support: config
  • Advanced configuration and multi-joystick support: config
  • 'lair/ace' hardware and software original scoreboards.
  • 64bit Windows and MacOS X Ports
  • Coded exclusively in vim using a Sun Microsystems Type 5c keyboard.

Windows

Windows files and documentation can be found here

Compile

Minimum software requirements: gcc, cmake, autotools, zlib, SDL2, libtool, vorbis and ogg.

MacOS X

Use homebrew to install the following packages:

brew install cmake
brew install autoconf
brew install automake
brew install pkg-config
brew install sdl2
brew install sdl2_ttf
brew install sdl2_image
brew install libtool
brew install libvorbis
brew install libogg

Raspberry Pi

For Raspberry Pi clone the RetroPie branch via:

git clone --single-branch --branch RetroPie https://github.com/DirtBagXon/hypseus-singe.git

Further RetroPie and Raspberry Pi information can be found here

Compilation with CMake

Build:

mkdir build
cd build
cmake ../src
make

Install and Run

Ensure you have data in the following daphne HOME folders:

pics, fonts, ram, roms, sound, singe, (vldp and vldp_dl)

Run hypseus with daphne arguments on the command line: Also refer to additional arguments below

hypseus lair vldp -framefile vldp_dl/lair/lair.txt -scorebezel

hypseus singe vldp -framefile singe/timegal/timegal.txt -script singe/timegal/timegal.singe

In Windows you are able to create .bat files with arguments for specific games.

Example .bat files are provided within the Windows zip file.

Retro gaming systems will require adoption within the relevant emulation scripts.

The singe -retropath argument can ease integration into libretro style systems. See RetroPie as an example.

bash scripts are provided for systems that support this shell.

Build Hypseus home and install bash scripts:

mkdir -p ~/.daphne/roms ~/.daphne/ram ~/.daphne/vldp
mkdir -p ~/.daphne/vldp_dl ~/.daphne/singe
cp doc/hypinput.ini doc/flightkey.ini ~/.daphne
cp doc/hypinput_gamepad.ini ~/.daphne
cp -R pics sound fonts ~/.daphne

sudo cp build/hypseus /usr/local/bin/hypseus.bin
sudo cp scripts/run.sh /usr/local/bin/hypseus
sudo cp scripts/singe.sh /usr/local/bin/singe
hypseus
singe

Configuration

Configuration of keycodes and joysticks should be made within hypinput.ini

By default SDL2 Keycodes and the Joystick API configuration options will be used.

SDL GameController API configuration can now be enabled for supported controllers.

Enable SDL_GameController using -gamepad. Example config: hypinput.ini

Update the Controllers db by placing gamecontrollerdb.txt in the Hypseus home folder.

Use the hypjsch utilities to help with advanced scancode configurations.

Refer to keylist.txt for SDL2 keycode values.

Screenshots

(Click images for YouTube playlist)

Hypseus

singe

Altering Hypseus or Singe ROM locations in bash scripts

Edit run.sh and singe.sh, to reflect the location of your ROM folders:

HYPSEUS_SHARE=~/.daphne

Note: The default Hypseus home directory, created when run without -homedir:

~/.hypseus

Bezels

Bezel arguments are documented in: bezels.txt

Hardware USB Scoreboard

Example arguments: -usbscoreboard COM 4 19200

Full details of the USB scoreboard here.

Software Scoreboard

Enable the software external scoreboard panel in lair/ace: -scorepanel.
Use KEY_TILT to switch displays when using multiple screens.

A bezel based alternate is also available via: -scorebezel

The scorepanel, or bezel, can be positioned using -scorepanel_position x y - Window Managers may influence placement of the panel, scorebezel is not under their influence. The -scorebezel_alpha argument is a transparency option for the bezel based scoreboard.

Singe

For Singe, provide the following arguments to hypseus:

hypseus singe vldp -framefile ~/.daphne/singe/timegal/timegal.txt -script ~/.daphne/singe/timegal/timegal.singe -homedir ~/.daphne/ -datadir ~/.daphne/

Check for Singe anomalies and replacement files here.

Singe 2

Hypseus Singe has support for Singe 2 games, including full 32bit overlays.

For current details see: Hypseus Singe Data

Lightguns

Singe supports Sinden and DolphinBar based lightguns with the -manymouse argument.

This argument enables absolute (EV_ABS) mouse input event codes.

Note: -sinden automatically enables -manymouse

Singe joystick [mouse] support

Singe now automatically interprets joystick axis change as mouse movement (Gun Games).

Adjust sensitivity via -js_range <1-20> in Singe arguments, or disable with -nojoymouse

Configure joystick controls in hypinput.ini or via GameController

Extended arguments and keys

The following additional, and reimplemented, arguments have been added to Hypseus Singe:

-bezel <lair.png>          [ Specify a png bezel in 'bezels' sub-folder    ]
-blank_blue                [ VLDP blank using YUV#1DEB6B                   ]
-blank_searches            [ VLDP blanking [adjust: -min_seek_delay]       ]
-blank_skips               [ VLDP blanking [adjust: -min_seek_delay]       ]
-force_aspect_ratio        [ Force 4:3 aspect ratio                        ]
-gamepad                   [ Enable SDL_GameController configuration       ]
-grabmouse                 [ Capture mouse in SDL window                   ]
-ignore_aspect_ratio       [ Ignore MPEG aspect ratio header [01B3]        ]
-keymapfile <flight.ini>   [ Specify an alternate hypinput.ini file        ]
-linear_scale              [ Enable linear filtering when scaling          ]
-novsync                   [ Disable VSYNC presentation on Renderer [crt]  ]
-original_overlay          [ Enable daphne style overlays (lair,ace,lair2) ]
-scalefactor <50-100>      [ Scale video display area [50-100]%            ]
-scanlines                 [ Simulate scanlines [adjust: -scanline_shunt]  ]
-scanline_alpha <1-255>    [ Adjust scanline alpha blending                ]
-scanline_shunt <2-10>     [ Shunt scanline spacing [adjust: -x -y]        ]
-scorebezel                [ Bezel layer software scoreboard               ]
-scorepanel                [ Enable software scoreboard in lair/ace/tq     ]
-scorepanel_position <x y> [ Adjust position of software_scorepanel        ]
-shiftx <-100 to 100>      [ Shift x-axis on video window [%]              ]
-shifty <-100 to 100>      [ Shift y-axis on video window [%]              ]
-tiphat                    [ Invert joystick SDL_HAT_UP and SDL_HAT_DOWN   ]
-usbscoreboard <args>      [ Enable USB serial support for scoreboard:     ]
                           [ Arguments: (i)mplementation, (p)ort, (b)aud   ]
-vertical_screen           [ Reorient calculations in logical fullscreen   ]
-vertical_stretch <1-24>   [ Overlay stretch (cliff/gtg only)              ]

-8bit_overlay              [ Restore original 8bit Singe overlays          ]
-blend_sprites             [ Restore BLENDMODE outline on Singe sprites    ]
-bootsilent                [ Mute sound during initVLDP() - if possible    ]
-js_range <1-20>           [ Adjust Singe joystick sensitivity: [def:5]    ]
-manymouse                 [ Enable ABS mouse input [lightguns] [gungames] ]
-nocrosshair               [ Request game does not display crosshairs      ]
-retropath                 [ Singe data path rewrites [.daphne]            ]
-sinden <1-10> <color>     [ Enable software border for lightguns          ]
                           [ Color: (w)hite, (r)ed, (g)reen, (b)lue or (x) ]

Alt-Enter                  [ Toggle fullscreen                             ]
Alt-Backspace              [ Toggle scanlines                              ]
[KEY_BUTTON3]              [ Toggle scoreboard display in lair/ace         ]
[KEY_COIN1]=|[KEY_START1]  [ Joystick hotkey combination for [KEY_QUIT]    ]
[KEY_TILT]                 [ Switch scorepanel display screen lair/ace/tq  ]

Enforce SDL Window context when Renderer auto-detection fails (no further extensions enabled):

-opengl                    [ Enable OpenGL SDL Window context              ]
-vulkan                    [ Enable Vulkan SDL Window instance             ]

Switch SDL_TEXTUREACCESS *

-texturestream             [ Enable SDL_TEXTUREACCESS_STREAMING            ]
-texturetarget             [ Enable SDL_TEXTUREACCESS_TARGET (Default)     ]

* This can aid SBC's with SDL2 => 2.0.16

Support

This software intended for educational purposes only. Please submit issues or pull requests directly to the project.

DO NOT submit issues or request support from the official Daphne forums!

About

Open development by the original author, Matt Ownby, ceased years ago.

Singe was created by Scott Duensing as a plugin to Daphne to allow the playing of American Laser Games.

This repository was created to expand the Hypseus project started by Jeffrey Clark. Many overlays were unimplemented in the original repository. Singe had also been removed.

The name of this application was changed to Hypseus (sibling to Daphne) so the original authors of Daphne would not be burdened with requests for support.

A massive thanks goes out to Matt Ownby, Scott Duensing, Jeffrey Clark, Manuel Alfayate, David Griffith and the many other developers who made their work available for me to build upon. Without them this project would not be possible.

License

Hypseus Singe, Being Retro Orientated This Humble Emulator Regenerates
Copyright (C) 2021-2023 DirtBagXon

Hypseus, Multiple Arcade Laserdisc Emulator
Copyright (C) 2016 Jeffrey Clark

Daphne, the First Ever Multiple Arcade Laserdisc Emulator
Copyright (C) 1999-2013 Matt Ownby

GNU General Public License version 3

This program is free software: you can redistribute it and/or modify
it under the terms of the [GNU General Public License] as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
[GNU General Public License] for more details.

Trademark

The "Hypseus Singe" mark is used to uniquely identify this project as an Arcade Laserdisc Emulator. Any direct or indirect commercial use of the mark "Hypseus" is strictly prohibited without express permission.