# SEGA Lindbergh Emulator Configuration File
# By the Lindbergh Development Team 2024-2025

# Set the requested dip switch width here
WIDTH 1920

# Set the requested dip switch height here
HEIGHT 1080

# Boost render resolution in HOD4/2Spicy/Harley/Rambo/HOD-EX/ID4/ID5 and LGJ
BOOST_RENDER_RES 0

# Set if the emulator should go full screen
FULLSCREEN 1

# Sets the Input Mode
# Mode 0: will use Keyboard/Mouse & SDL Games Controllers
# Mode 1: will use Keyboard/Mouse & EVDEV Controllers
# Mode 2: will use EVDEV raw inputs only
# Note: EVDEV should be configured at the bottom of the settings file
INPUT_MODE 2

# Set to 1 if you want to disable SDL (Fixes SRTV boost bar)
# NO_SDL 0

# Set the Region ( JP/US/EX )
REGION EX

# Set if you want the game to be Free Play
FREEPLAY 0

# Set if the emulator should emulate JVS and use the keyboard/mouse for controls.
# If this is set to 0, then the emulator will route the traffic to the serial device
# defined in JVS_PATH if it has been defined.
# EMULATE_JVS 1

# Set if the emulator should emulate the rideboard used in the special games here
# If this is set to 0, then the emulator will route the traffic to one of the serial ports
EMULATE_RIDEBOARD AUTO

# Set if the emulator should emulate the driveboard used in driving games here
# If this is set to 0, then the emulator will route the traffic to one of the serial ports
EMULATE_DRIVEBOARD AUTO

# Set if the emulator should emulate the motion board from Outrun 2 SP SDX here
# If this is set to 0, then the emulator will route the traffic to one of the serial ports
EMULATE_MOTIONBOARD AUTO

# Set if the loader should emulate the card reader in Virtua Tenis 3
EMULATE_CARDREADER 0

# Set to 1 if the loader should emulate the touchscreen with the mouse in PH.
# EMULATE_TOUCHSCREEN 1

# Card File for reader 1
# CARDFILE_01 Card_01.crd

# Card File for reader 2
# CARDFILE_02 Card_02.crd

# Define the path to pass the JVS packets to if JVS is not being emulated.
# JVS_PATH /dev/ttyUSB0

# Define the path to pass the first serial port to if it's not being emulated.
# SERIAL_1_PATH /dev/ttyUSB0

# Define the path to pass the second serial port to if it's not being emulated.
# SERIAL_2_PATH /dev/ttyUSB0

# Define the path to the sram.bin file
SRAM_PATH /userdata/saves/lindbergh/sram.bin.rambo

# Define the path to the eeprom.bin file
EEPROM_PATH /userdata/saves/lindbergh/eeprom.bin.rambo

# If set, the library libCG.so needed for 2Spicy, Harley, Rambo and HOD-Ex shader recompilation
# will be loaded from the specifyied location. (include the name of file in the location)
# LIBCG_PATH /my/file/location/myLibCg.so

# Set the GPU vendor (0 = Autodetect / 1 = NVidia / 2 = AMD / 3 = ATI(AMD-PRO) / 4 = Intel / 5 = Unknown)
# GPU_VENDOR 0

# Set if you want to see debug messages in the console
DEBUG_MSGS 0

# Set if you'd like to add a border for optical light gun tracking
BORDER_ENABLED 0

# Set the thickness of the white border as a percentage of the width of the screen
# WHITE_BORDER_PERCENTAGE 2

# Set the thickness of the black border which sits around the
# white border as a percentage of the width of the screen
# BLACK_BORDER_PERCENTAGE 0

# Set to true if you experience flickering in hummer
HUMMER_FLICKER_FIX 0

# Set to keep the aspect ratio (4:3) in games like Sega Race TV and Primeval Hunt
KEEP_ASPECT_RATIO 0

# Set to 0 if you want to disable the Glare effect in OutRun
OUTRUN_LENS_GLARE_ENABLED 0

# Set to 1 to bypass cabinet checks including drive board and tower in Outrun 2 SP SDX
SKIP_OUTRUN_CABINET_CHECK 0

# Set to 1 if you want to limit the FPS in games that are not limited like OutRun2
FPS_LIMITER_ENABLED 0

# Set the target FPS (will only work if FPS_LIMITER_ENABLED = 1)
FPS_TARGET 60

# Set to 1 if you want to render LGJ using the mesa patches instead of nVidia (fixes some glitches)
# LGJ_RENDER_WITH_MESA 1

# Set the Primeval Hunt mode
# Mode 0: Default (Side by Side)
# Mode 1: No touch screen
# Mode 2: Side by Side
# Mode 3: 3ds mode 1 (Touch screen to the right)
# Mode 4: 3ds mode 2 (Touch screen to the bottom)
PRIMEVAL_HUNT_MODE 1

# Disble to use the original fonts instead of the built in font in the loader
# DISABLE_BUILTIN_FONT 0

# Disble to use the original logos instead of the built in logos in the loader
# DISABLE_BUILTIN_LOGOS 0

# Set to 0 to enable the mouse pointer/Cursor
# HIDE_CURSOR 1

# Set the custom mouse pointer from a PNG file (Usefull for shooting games)
# CUSTOM_CURSOR myCustomCursor.png

# Set the width of the custom cursor
# CUSTOM_CURSOR_WIDTH 32

# Set the height of the custom cursor
# CUSTOM_CURSOR_HEIGHT 32

# Set a custom cursor for the touch screen in Primeval Hunt
# PH_TOUCH_CURSOR myCustomHandCursor.png

# Set the width of the custom cursor
# PH_TOUCH_CURSOR_WIDTH 32

# Set the height of the custom cursor
# PH_TOUCH_CURSOR_HEIGHT 32

# Hacky way to make MJ4 work at prohibited times?
# MJ4_ENABLED_ALL_THE_TIME 1

# Sets the IP address in the eeprom for Outrun link (you have to put your NIC ip)
# OR2_IP 192.168.1.2
# OR2_NETMASK 255.255.255.0

# House of the dead 4 speed fix set the frequency of your CPU in Ghz (The speed reported by the manufacturer)
# CPU_FREQ_GHZ 4.0

# Set the colour of the lindbergh to change the Segaboot logo
# Possible colours are: YELLOW, RED, BLUE, SILVER, REDEX
# LINDBERGH_COLOUR YELLOW

# X11 MODE (Input Mode 1)
# To find the value pairs for these run `xev` on linux

TEST_KEY 28              # t
# PLAYER_1_START_KEY 10    # 1
# PLAYER_1_SERVICE_KEY 39  # s
# PLAYER_1_COIN_KEY 14     # 5
# PLAYER_1_UP_KEY 111      # Up
# PLAYER_1_DOWN_KEY 116    # Down
# PLAYER_1_LEFT_KEY 113    # Left
# PLAYER_1_RIGHT_KEY 114   # Right
# PLAYER_1_BUTTON_1_KEY 24 # q
# PLAYER_1_BUTTON_2_KEY 25 # w
# PLAYER_1_BUTTON_3_KEY 26 # e
# PLAYER_1_BUTTON_4_KEY 27 # r

# EVDEV MODE (Input Mode 2)
# To find the value pairs for these run ./lindbergh --list-controllers

TEST_BUTTON /dev/input/event15:KEY:20

PLAYER_1_BUTTON_START /dev/input/event16:KEY:315
PLAYER_1_BUTTON_SERVICE /dev/input/event16:KEY:317
PLAYER_1_BUTTON_UP /dev/input/event16:ABS:17:MIN
PLAYER_1_BUTTON_DOWN /dev/input/event16:ABS:17:MAX
PLAYER_1_BUTTON_LEFT /dev/input/event16:ABS:16:MIN
PLAYER_1_BUTTON_RIGHT /dev/input/event16:ABS:16:MAX
PLAYER_1_BUTTON_1 /dev/input/event16:KEY:304
PLAYER_1_BUTTON_2 /dev/input/event16:KEY:305
PLAYER_1_BUTTON_3 /dev/input/event16:KEY:307
PLAYER_1_BUTTON_4 /dev/input/event16:KEY:308
PLAYER_1_BUTTON_5 /dev/input/event16:KEY:310
PLAYER_1_BUTTON_6 /dev/input/event16:KEY:311
PLAYER_1_BUTTON_7 /dev/input/event16:ABS:2:MAX
PLAYER_1_BUTTON_8 /dev/input/event16:ABS:5:MAX

# PLAYER_2_BUTTON_START AT_TRANSLATED_SET_2_KEYBOARD_KEY_1
# PLAYER_2_BUTTON_SERVICE AT_TRANSLATED_SET_2_KEYBOARD_KEY_S
# PLAYER_2_BUTTON_UP /dev/input/event16:KEY:308
# PLAYER_2_BUTTON_DOWN /dev/input/event16:KEY:307
# PLAYER_2_BUTTON_LEFT AT_TRANSLATED_SET_2_KEYBOARD_KEY_LEFT
# PLAYER_2_BUTTON_RIGHT AT_TRANSLATED_SET_2_KEYBOARD_KEY_RIGHT
# PLAYER_2_BUTTON_1 /dev/input/event16:KEY:304
# PLAYER_2_BUTTON_2 AT_TRANSLATED_SET_2_KEYBOARD_KEY_W
# PLAYER_2_BUTTON_3 AT_TRANSLATED_SET_2_KEYBOARD_KEY_E
# PLAYER_2_BUTTON_4 AT_TRANSLATED_SET_2_KEYBOARD_KEY_R
# PLAYER_2_BUTTON_5 AT_TRANSLATED_SET_2_KEYBOARD_KEY_T
# PLAYER_2_BUTTON_6 AT_TRANSLATED_SET_2_KEYBOARD_KEY_Y
# PLAYER_2_BUTTON_7 AT_TRANSLATED_SET_2_KEYBOARD_KEY_I
# PLAYER_2_BUTTON_8 AT_TRANSLATED_SET_2_KEYBOARD_KEY_O

ANALOGUE_1 /dev/input/event16:ABS:0
ANALOGUE_2 /dev/input/event16:ABS:1
# ANALOGUE_3 /dev/input/event16:ABS:2
# ANALOGUE_4 /dev/input/event16:ABS:2

# ANALOGUE_DEADZONE_1 0 0 0
# ANALOGUE_DEADZONE_2 0 0 0
# ANALOGUE_DEADZONE_3 0 0 0
# ANALOGUE_DEADZONE_4 0 0 0
# ANALOGUE_DEADZONE_5 0 0 0
# ANALOGUE_DEADZONE_6 0 0 0
# ANALOGUE_DEADZONE_7 0 0 0
# ANALOGUE_DEADZONE_8 0 0 0
PLAYER_1_COIN /dev/input/event16:KEY:314
