84 lines
3.5 KiB
Markdown
84 lines
3.5 KiB
Markdown
# SEGA Lindbergh Emulator
|
|
|
|
This project emulates the SEGA Lindbergh, allowing games to run on modern Linux computers with an NVIDIA graphics card to be used as replacement hardware for broken Lindbergh systems in physical arcade machines.
|
|
|
|
You can view the supported titles [here.](docs/supported.md)
|
|
|
|
## Dependencies
|
|
|
|
First make sure you have up-to-date NVIDIA drivers and then install the following:
|
|
|
|
```
|
|
sudo dpkg --add-architecture i386
|
|
sudo apt update
|
|
sudo apt install gcc-multilib
|
|
sudo apt install build-essential
|
|
sudo apt install freeglut3:i386
|
|
sudo apt install freeglut3-dev:i386
|
|
sudo apt install libglew-dev
|
|
sudo apt install xorg-dev
|
|
sudo apt install libopenal1:i386 libopenal-dev:i386
|
|
sudo apt install libalut-dev:i386 // You will need to find libalut-dev:i386, libalut0:i386 and multiarch-support:i386 from Ubuntu Xenial.
|
|
sudo apt install libxmu6:i386
|
|
sudo apt install libstdc++5:i386
|
|
sudo apt install libasound2-dev:i386
|
|
```
|
|
|
|
For Ubuntu 22.04 and above you'll need to download manually from Xenial.
|
|
|
|
```
|
|
wget -q http://launchpadlibrarian.net/534757982/multiarch-support_2.23-0ubuntu11.3_i386.deb \
|
|
&& dpkg -i multiarch-support_2.23-0ubuntu11.3_i386.deb
|
|
wget -q http://launchpadlibrarian.net/184146495/libalut0_1.1.0-5_i386.deb \
|
|
&& dpkg -i libalut0_1.1.0-5_i386.deb
|
|
wget -q http://launchpadlibrarian.net/184146496/libalut-dev_1.1.0-5_i386.deb \
|
|
&& dpkg -i libalut-dev_1.1.0-5_i386.deb
|
|
|
|
```
|
|
|
|
Note: The project has been tested to work on Ubuntu 22.04, and doesn't currently work on Ubuntu 23.10. Multiple packages such as `freeglut3:i386` are not available anymore on Debian Trixxie or Ubuntu 23.10.
|
|
|
|
## Building & Running
|
|
|
|
This emulator will need access to the input devices and serial devices on Linux. Before running this emulator you should add your user account to the following groups and then _restart your computer_.
|
|
|
|
```
|
|
sudo usermod -a -G dialout,input $USER
|
|
```
|
|
|
|
To build, run the makefile, and then copy the contents of the build directory into the game directory and run.
|
|
|
|
```
|
|
make
|
|
cp build/* ~/the-house-of-the-dead-4/disk0/elf/.
|
|
cd ~/the-house-of-the-dead-4/disk0/elf
|
|
./lindbergh
|
|
```
|
|
|
|
Some games will require extra libraries like `libposixtime.so`, which can be found in dumps of the Lindbergh CF image.
|
|
|
|
A default configuration file is provided in `docs/lindbergh.conf`. It should be placed in the same folder the game is run from. If no config file is present a default setting will be used.
|
|
|
|
Do not run this as root, instead use the usergroups for input/dialout to give the emulator access to what it needs. Lindbergh games expect full control of the Linux OS and with root privilages it is possible that they could cause damage to your computer.
|
|
|
|
A `lindbergh` executable is provided in the build directory to easily run the games. Place it in the same directory as the game elf, and run `./lindbergh` to automatically start the game with the correct environment variables set, or run `./lindbergh -t` for test mode.
|
|
|
|
## Controls
|
|
|
|
Currently the controls are set up for The House of the Dead 4.
|
|
|
|
| Key | Mapping |
|
|
|-------------|----------------|
|
|
| t | Test |
|
|
| s | Service |
|
|
| 5 | Coin 1 |
|
|
| 1 | Player 1 Start |
|
|
| Right Click | Reload |
|
|
| Left Click | Shoot |
|
|
|
|
Controls can be modified in the `lindbergh.conf` file.
|
|
|
|
## Thanks
|
|
|
|
This project has been built by referencing earlier projects by Teknoparrot and JayFoxRox and from contributions by Doozer, Rolel, dkeruza-neo and Caviar-X with extensive testing by Francesco - thanks to all of them!
|