Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/dirtbagxon/hypseus-singe
Hypseus is a SDL2 version of Daphne and Singe. Laserdisc game emulation.
https://github.com/dirtbagxon/hypseus-singe
32bit 64bit arcade-games daphne emulator game hypseus laserdisc linux lua macosx raspberry-pi retro retropie sdl2 sinden singe singe2 windows
Last synced: about 3 hours ago
JSON representation
Hypseus is a SDL2 version of Daphne and Singe. Laserdisc game emulation.
- Host: GitHub
- URL: https://github.com/dirtbagxon/hypseus-singe
- Owner: DirtBagXon
- License: gpl-3.0
- Created: 2021-03-12T17:20:11.000Z (almost 4 years ago)
- Default Branch: master
- Last Pushed: 2025-01-10T13:08:12.000Z (3 days ago)
- Last Synced: 2025-01-10T14:22:39.916Z (2 days ago)
- Topics: 32bit, 64bit, arcade-games, daphne, emulator, game, hypseus, laserdisc, linux, lua, macosx, raspberry-pi, retro, retropie, sdl2, sinden, singe, singe2, windows
- Language: C++
- Homepage: https://ko-fi.com/dirtbagxon
- Size: 44.3 MB
- Stars: 153
- Watchers: 14
- Forks: 20
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
![Hypseus Singe](screenshots/hypseus-logo.png)
# Hypseus Singe
Hypseus is a fork of [Matt Ownby's][CUS] [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][ALG].
Features:
* SDL2 support
* Updated MPEG2 decoder
* Daphne VLDP 32bit upgrade
* Integrated _(active)_ [bezel](screenshots/bezel.png?raw=true) 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](https://github.com/DirtBagXon/hypseus_singe_data).
* Daphne alternate overlay choices
* Multiple *GameController* (*hotplug*) support: [config](doc/hypinput_gamepad.ini)
* Advanced configuration and multi-joystick support: [config](doc/hypinput.ini)
* 'lair/ace' [hardware](https://github.com/DirtBagXon/hypseus_scoreboard) and [software](screenshots/scoreboard.png?raw=true) original scoreboards.
* 64bit Windows and MacOS X Ports
* Coded exclusively in [vim](https://www.vim.org) using a Sun Microsystems [Type 5c keyboard](https://github.com/DirtBagXon/sunkbd).## Windows
**Windows** files and documentation can be found [here](win32/)
## Compile
Minimum software requirements: [gcc], [cmake], [autotools], [zlib], [SDL2],
[libtool], [libzip], [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 sdl2_mixer
brew install libtool
brew install libvorbis
brew install libogg
brew install libzipNewer series Macs may need to use the _brew_ `libmpeg2` package:
brew install libmpeg2
Then clone the `libmpeg2` branch:
git clone --single-branch --branch libmpeg2 https://github.com/DirtBagXon/hypseus-singe.git
### 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](doc/RETROPIE.md)
### 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, midi, sound, singe, (vldp and vldp_dl)
Run `hypseus` with `daphne` [arguments](doc/CmdLine.md) on the command line:
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](win32/) 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](doc/RETROPIE.md#extended-argument-summary) 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 midi ~/.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
See [CmdLine](doc/CmdLine.md)
Configuration of keycodes and joysticks should be made within [hypinput.ini](doc/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](doc/hypinput_gamepad.ini)
Update the Controllers _db_ by placing `gamecontrollerdb.txt` in the Hypseus home folder.
Use the [hypjsch](https://github.com/DirtBagXon/hypjsch) utilities to help with advanced scancode configurations.
Refer to [keylist.txt](doc/keylist.txt) for **SDL2** keycode values.
## Screenshots
*(Click images for YouTube playlist)*
[![Hypseus](https://raw.githubusercontent.com/DirtBagXon/hypseus-singe/master/screenshots/screenshot.png)](https://www.youtube.com/@DirtBagXon/videos)
[![singe](https://raw.githubusercontent.com/DirtBagXon/hypseus-singe/master/screenshots/singe2.png)](https://www.youtube.com/@DirtBagXon/videos)
## 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.md](doc/Bezels.md)
## Hardware USB Scoreboard
Example arguments: `-usbscoreboard COM 4 19200`
Full details of the USB scoreboard [here](https://github.com/DirtBagXon/hypseus_scoreboard).
## Software Scoreboard
Enable the software external [scoreboard panel](screenshots/scoreboard.png?raw=true) 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](https://github.com/DirtBagXon/hypseus_singe_data).
## Singe 2
Hypseus Singe has support for Singe 2 games, including full 32bit overlays.
For current details see: [Hypseus Singe Data](https://github.com/DirtBagXon/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](doc/hypinput.ini) or via [GameController](doc/hypinput_gamepad.ini)
## Extended arguments and keys
Highlighted additional, and reimplemented, arguments that have been added to Hypseus Singe:
Refer to [CmdLine.md](doc/CmdLine.md) for a full argument list.
-bezel [ 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 [ 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 <25-100> [ Scale video display area [25-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 [ 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 [ Enable USB serial support for scoreboard: ]
[ Arguments: (i)mplementation, (p)ort, (b)aud ]
-vertical_screen [ Reorient calculations in logical fullscreen ]
-vertical_stretch <1-24> [ YUV vertical stretching. Useful in cliff/gtg ]-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> [ 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][CUS], ceased years ago.
Singe was created by [Scott Duensing][SD] as a plugin to Daphne to allow the
playing of [American Laser Games][ALG].This repository was created to expand the ``Hypseus`` project started
by [Jeffrey Clark][JAC]. 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][peneus]_)
so the original authors of [Daphne] would not be burdened with requests for support.A massive thanks goes out to [Matt Ownby][CUS], [Scott Duensing][SD], [Jeffrey Clark][JAC],
[Manuel Alfayate][MAC], [David Griffith][DG] 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-2025 [DirtBagXon][owner]**Hypseus**, Multiple Arcade Laserdisc Emulator
Copyright (C) 2016 [Jeffrey Clark][JAC]**Daphne**, the First Ever Multiple Arcade Laserdisc Emulator
Copyright (C) 1999-2013 [Matt Ownby][CUS][![GNU General Public License version 3](http://www.gnu.org/graphics/gplv3-127x51.png)][GNU General Public License]
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.__[owner]: https://github.com/DirtBagXon
[project]: https://github.com/DirtBagXon/hypseus-singe
[issues]: https://github.com/DirtBagXon/hypseus-singe/issues
[pull requests]: https://github.com/DirtBagXon/hypseus-singe/pulls
[Daphne]: http://www.daphne-emu.com
[CUS]: http://www.daphne-emu.com/site3/statement.php
[gcc]: https://gcc.gnu.org/
[zlib]: http://www.zlib.net/
[libzip]: https://libzip.org/
[libzippp]: https://github.com/ctabin/libzippp
[libmpeg2]: http://libmpeg2.sourceforge.net/
[SDL2]: https://www.libsdl.org/download-2.0.php
[SDL2_image]: https://www.libsdl.org/projects/SDL_image/
[SDL2_mixer]: https://www.libsdl.org/projects/SDL_mixer/
[SDL2_ttf]: https://www.libsdl.org/projects/SDL_ttf/
[SDL2_gfx]: https://sourceforge.net/projects/sdl2gfx/
[ManyMouse]: https://github.com/icculus/manymouse
[serialib]: https://github.com/imabot2/serialib
[plog]: https://github.com/SergiusTheBest/plog
[GLEW]: http://glew.sourceforge.net/
[ogg]: https://en.wikipedia.org/wiki/Ogg
[vorbis]: https://en.wikipedia.org/wiki/Vorbis
[cmake]: https://cmake.org
[lua]: https://lua.org/
[lua_cjson]: https://github.com/mpx/lua-cjson
[lua_md5]: https://github.com/lunarmodules/md5
[lua_sha2]: https://code.google.com/archive/p/sha2/
[luars232]: https://github.com/ynezz/librs232
[lua_bitop]: https://bitop.luajit.org/index.html
[luafilesystem]: https://lunarmodules.github.io/luafilesystem/
[autotools]: https://en.wikipedia.org/wiki/GNU_Build_System
[libtool]: https://www.gnu.org/software/libtool/manual/libtool.html
[peneus]: https://en.wikipedia.org/wiki/Peneus
[GNU General Public License]: http://www.gnu.org/licenses/gpl-3.0.en.html
[JAC]: https://github.com/h0tw1r3
[MAC]: https://github.com/vanfanel
[ALG]: https://en.wikipedia.org/wiki/American_Laser_Games
[SD]: https://github.com/sduensin
[DG]: https://github.com/DavidGriffith