SuperTuxKart (Beta) for Sailfish OS

For reference, here’s my config:

<?xml version="1.0"?>
<stkconfig version="8" >

    <!-- Audio Settings
             sfx_on : Whether sound effects are enabled or not (true or false)
             music_on : Whether musics are enabled or not (true or false)
             sfx_numerator : The value in the audio options SFX spinner
             sfx_volume : Volume for sound effects, see openal AL_GAIN for interpretation
             music_numerator : The value in the audio options music spinner
             music_volume : Music volume from 0.0 to 1.0
             volume_denominator : Number of steps for volume adjustment -->
    <Audio
        sfx_on="true"
        music_on="true"
        sfx_numerator="10"
        sfx_volume="0.267800"
        music_numerator="10"
        music_volume="0.267800"
        volume_denominator="15"
    >
    </Audio>

    <!-- Race Setup Settings
             numkarts : Default number of karts. -1 means use all
             numlaps : Default number of laps.
             gp-reverse : Default direction of GP tracks. 0=default, 1=no reverse, 2=all reverse, 3=Random
             random-gp-num-tracks : Default number of tracks for random GP.
             ffa-time-limit : Time limit in ffa mode.
             use-ffa-mode : Use ffa mode instead of 3 strikes battle.
             lap-trial-time-limit : Time limit in lap trial mode.
             numgoals : Default number of goals in soccer mode.
             soccer-default-team : Default team in soccer mode for single player.
             soccer-time-limit : Time limit in soccer mode.
             soccer-use-time-limit : Enable time limit in soccer mode.
             random-arena-item : Enable random location of items in an arena.
             difficulty : Default race difficulty. 0=easy, 1=medium, 2=hard, 3=supertux
             game_mode : Game mode. 0=standard, 1=time trial, 2=follow the leader, 3=3 strikes, 4=easter egg hunt, 5=soccer, 6=ghost replay
             soccer-red-ai-num : Number of red AI karts in soccer mode.
             soccer-blue-ai-num : Number of blue AI karts in soccer mode.
             karts-powerup-gui : Show other karts' held powerups in race gui.
             soccer-player-list : Show player list icon in soccer mode.
             addon-tux-online : Always show online addon karts as tux when live join is on.
             random-player-pos : Randomize the position of the players at the start of a race. Doesn't apply to story mode. -->
    <RaceSetup
        numkarts="5"
        numlaps="3"
        gp-reverse="0"
        random-gp-num-tracks="1"
        ffa-time-limit="3"
        use-ffa-mode="false"
        lap-trial-time-limit="3"
        numgoals="3"
        soccer-default-team="0"
        soccer-time-limit="3"
        soccer-use-time-limit="false"
        random-arena-item="false"
        difficulty="0"
        game_mode="0"
        soccer-red-ai-num="2"
        soccer-blue-ai-num="2"
        karts-powerup-gui="false"
        soccer-player-list="false"
        addon-tux-online="false"
        random-player-pos="true"
    >
    </RaceSetup>

    <!-- Kart to select by default (the last used kart) -->
    <kart value="addon_roadster-x5" />

    <!-- Last selected kart group -->
    <last_kart_group value="all" />

    <!-- Settings for the wiimote
             wiimote-raw-max : At what raw input value maximum steering is reached (between 1 and 25).
             wiimote-weight-linear : A weight applied to the linear component of mapping wiimote angle to steering angle
             wiimote-weight-square : A weight applied to the square component of mapping wiimote angle to steering angle
             wiimote-weight-asin : A weight applied to the asin component of mapping wiimote angle to steering angle
             wiimote-weight-sin : A weight applied to the sin component of mapping wiimote angle to steering angle -->
    <WiiMote
        wiimote-raw-max="20.000000"
        wiimote-weight-linear="1.000000"
        wiimote-weight-square="0.000000"
        wiimote-weight-asin="0.000000"
        wiimote-weight-sin="0.000000"
    >
    </WiiMote>

    <!-- Settings for the multitouch device
             multitouch_active : Enable multitouch support: 0 = disabled, 1 = if available, 2 = enabled
             multitouch_draw_gui : Enable multitouch race GUI
             multitouch_inverted : Draw steering wheel on right side.
             multitouch_auto_acceleration : Auto acceleration for multitouch controls.
             multitouch_controls : Multitouch mode: 0 = undefined, 1 = steering wheel, 2 = accelerometer, 3 = gyroscope
             multitouch_deadzone : A parameter in range [0, 0.5] that determines the zone that is considered as centered in steering button.
             multitouch_sensitivity_x : A parameter in range [0, 1.0] that determines the sensitivity for x axis.
             multitouch_sensitivity_y : A parameter in range [0, 1.0] that determines the sensitivity for y axis.
             multitouch_tilt_factor : A parameter that determines general accelerometer sensitivity.
             multitouch_scale : A parameter in range [0.5, 1.5] that determines the scale of the multitouch interface.
             screen_keyboard_status : STK screen keyboard status: 0 = disabled, 1 = enabled -->
    <Multitouch
        multitouch_active="1"
        multitouch_draw_gui="true"
        multitouch_inverted="false"
        multitouch_auto_acceleration="true"
        multitouch_controls="1"
        multitouch_deadzone="0.100000"
        multitouch_sensitivity_x="0.200000"
        multitouch_sensitivity_y="0.650000"
        multitouch_tilt_factor="4.000000"
        multitouch_scale="0.950000"
        screen_keyboard_status="0"
    >
    </Multitouch>

    <!-- Order karts start in GP
             most_points_first : Starting order from most to least points (true) or other way around (false)
             player_last : Always put the player at the back or not (Bully mode). -->
    <GpStartOrder
        most_points_first="true"
        player_last="false"
    >
    </GpStartOrder>

    <!-- Directory with additional GP's. -->
    <additional_gp_directory value="" />

    <!-- Video Settings
             real_width : Screen/window real width in pixels before high dpi is applied
             real_height : Screen/window real height in pixels before high dpi is applied
             width : Screen/window width in pixels, this value should not be edited
             height : Screen/window height in pixels, this value should not be edited
             prev_real_width : Previous real screen/window width
             prev_real_height : Previous real screen/window height
             window_x : If remember_window_location is true
             window_y : If remember_window_location is true
             show_fps : Display frame per seconds
             show_story_mode_timer : Display the story mode timer
             show_speedrun_timer : Display the speedrun timer
             max_fps : Maximum fps, should be at least 60
             force_legacy_device : Force OpenGL 2 context, even if OpenGL 3 is available.
             split_screen_horizontally : When playing a non-square amount of players (e.g. 2), should it split horizontally (top/bottom)
             enable_texture_compression : Enable Texture Compression
             enable_high_definition_textures : Enable high definition textures. Bit flag: bit 0 = enabled/disabled; bit 1 = set by user/set as default
             enable_glow : Enable Glow
             enable_bloom : Enable Bloom
             enable_light_shaft : Enable Light Shafts
             enable_dynamic_lights : Enable Dynamic Lights
             enable_dof : Enable Depth of Field
             old_driver_popup : Determines if popup message about too old drivers should be displayed.
             scale_rtts_factor : Custom value for RTTs resolution. Value should be smaller or equal to 1.0
             max_texture_size : Max texture size when high definition textures are disabled
             hq_mipmap : Generate mipmap for textures using high quality method with SSE
             font_size : The size of fonts. 0 is the smallest and 6 is the biggest
             render_driver : Render video driver to use, at the moment gl, vulkan or directx9 is supported.
             vulkan_fullscreen_desktop : Use SDL_WINDOW_FULLSCREEN_DESKTOP for vulkan device
             non_ge_fullscreen_desktop : Use SDL_WINDOW_FULLSCREEN_DESKTOP for non-ge device -->
    <Video
        real_width="720"
        real_height="1600"
        width="720"
        height="1600"
        fullscreen="false"
        prev_real_width="1024"
        prev_real_height="768"
        prev_fullscreen="false"
        remember_window_location="false"
        window_x="-1"
        window_y="-1"
        show_fps="true"
        show_story_mode_timer="true"
        show_speedrun_timer="false"
        max_fps="60"
        force_legacy_device="false"
        split_screen_horizontally="true"
        enable_texture_compression="false"
        enable_high_definition_textures="2"
        enable_glow="false"
        enable_bloom="false"
        enable_light_shaft="false"
        enable_dynamic_lights="true"
        enable_dof="false"
        old_driver_popup="true"
        scale_rtts_factor="0.350000"
        max_texture_size="512"
        hq_mipmap="false"
        font_size="4.000000"
        render_driver="gl"
        vulkan_fullscreen_desktop="true"
        non_ge_fullscreen_desktop="false"
    >
    </Video>

    <!-- Recording Settings
             limit_game_fps : Limit game framerate not beyond the fps of recording video.
             video_format : Specify the video for record, which is the enum of VideoFormat in libopenglrecorder. It will auto fallback to MJPEG if libopenglrecorder was not compiled with such video encoder.
             audio_bitrate : Specify the bitrate for audio
             video_bitrate : Specify the bitrate for video
             recorder_jpg_quality : Specify the jpg compression level of recorder
             record_fps : Specify the fps of recording video -->
    <Recording
        limit_game_fps="true"
        video_format="0"
        audio_bitrate="112000"
        video_bitrate="20000"
        recorder_jpg_quality="90"
        record_fps="30"
    >
    </Recording>

    <!-- Wan server bookmarks -->
    <server-bookmarks>
    </server-bookmarks>

    <!-- Wan server bookmarks order -->
    <server-bookmarks-order>
    </server-bookmarks-order>

    <!-- Last 5 IP addresses that user entered -->
    <address-history>
    </address-history>

    <!-- The stun servers that will be used to know the public address (ipv4 only) with port -->
    <ipv4-stun-servers>
        <stun-server address="stunv4.7.supertuxkart.net:3478" ping="0"/>
        <stun-server address="stunv4.8.supertuxkart.net:3478" ping="0"/>
        <stun-server address="stunv4.linuxreviews.org:3478" ping="0"/>
    </ipv4-stun-servers>

    <!-- The stun servers that will be used to know the public address (including ipv6) with port -->
    <ipv6-stun-servers>
        <stun-server address="stun.linuxreviews.org:3478" ping="0"/>
        <stun-server address="stun.stunprotocol.org:3478" ping="0"/>
        <stun-server address="stun.supertuxkart.net:3478" ping="0"/>
    </ipv6-stun-servers>

    <!-- Network Settings
             enable-network-splitscreen : The default value of enable splitscreen checkbox in online screen.
             log-network-packets : If all network packets should be logged
             random-client-port : Use random port for client connection (check stk_config.xml for default value)
             random-server-port : Use random port for server connection (check stk_config.xml for default value)
             lobby-chat : Enable chatting in networking lobby, if off than no chat message will be displayed from any players.
             race-chat : Enable chatting during races.
             ipv6-lan : Enable IPv6 LAN server discovery.
             max-players : Maximum number of players on the server (for gui server creation.
             timer-sync-difference-tolerance : Max time difference tolerance (in ms) to synchronize timer with server.
             default-ip-type : Default IP type of this machine, 0 detect every time, 1 IPv4, 2 IPv6, 3 IPv6 NAT64, 4 Dual stack.
             lan-server-gp : Show grand prix option in create LAN server screen, false will show AI option.
             wan-server-gp : Show grand prix option in create WAN server screen, false will show AI option. -->
    <Network
        enable-network-splitscreen="false"
        log-network-packets="false"
        random-client-port="true"
        random-server-port="false"
        lobby-chat="false"
        race-chat="true"
        ipv6-lan="true"
        max-players="8"
        timer-sync-difference-tolerance="5"
        default-ip-type="0"
        lan-server-gp="false"
        wan-server-gp="true"
    >
    </Network>

    <!-- The Number of karts per gamemode. -->
    <num-karts-per-gamemode>
        <gamemode-list gamemode="0" num-karts="4"/>
        <gamemode-list gamemode="1002" num-karts="5"/>
        <gamemode-list gamemode="1100" num-karts="6"/>
        <gamemode-list gamemode="1101" num-karts="4"/>
        <gamemode-list gamemode="2000" num-karts="4"/>
        <gamemode-list gamemode="2001" num-karts="4"/>
    </num-karts-per-gamemode>

    <!-- Graphics Quality Settings
             particles-effecs : Particles effects: 0 disabled, 1 only important, 2 enabled
             christmas-mode : Christmas hats: 0 use current date, 1 always on, 2 always off
             easter-ear-mode : Easter Bunny Ears: 0 use current date, 1 always on, 2 always off
             animated-characters : Whether to display animated characters
             geometry_level : Geometry quality 0=everything is displayed; 1=a few details are displayed; 2=lowest level, no details
             anisotropic : Quality of anisotropic filtering (usual values include 2-4-8-16; 0 to disable)
             swap-interval : Swap interval for vsync: 0 = disabled, 1 = full
             motionblur_enabled : Whether motion blur should be enabled
             mlaa : Whether MLAA anti-aliasing should be enabled
             ssao : Enable Screen Space Ambient Occlusion
             light_scatter : Enable light scattering shaders
             shadows_resolution : Shadow resolution (0 = disabled
             Degraded_IBL : Disable specular IBL -->
    <GFX
        particles-effecs="2"
        christmas-mode="0"
        easter-ear-mode="0"
        animated-characters="true"
        geometry_level="0"
        anisotropic="16"
        swap-interval="0"
        motionblur_enabled="true"
        mlaa="true"
        ssao="false"
        light_scatter="false"
        shadows_resolution="0"
        Degraded_IBL="true"
    >
    </GFX>

    <cache-overworld value="true" />

    <crashed value="false" />

    <!-- Camera settings for player.
             distance : Distance between kart and camera
             forward-up-angle : Angle between camera and plane of kart (pitch) when the camera is pointing forward
             forward-smoothing : if true, use smoothing (forward-up-angle become relative to speed) when pointing forward
             backward-distance : Distance between kart and camera (reverse)
             backward-up-angle : Angle between camera and plane of kart (pitch) when the camera is pointing backwards. This is usually larger than the forward-up-angle, since the kart itself otherwise obstricts too much of the view
             fov : Focal distance (single player) -->
    <camera-normal
        distance="1.000000"
        forward-up-angle="0.000000"
        forward-smoothing="true"
        backward-distance="2.000000"
        backward-up-angle="5.000000"
        fov="80"
    >
    </camera-normal>

    <!-- Use ball camera in soccer mode, instead of reverse -->
    <reverse-look-use-soccer-cam value="false" />

    <!-- The current used camera. 0=Custom; 1=Standard; 2=Drone chase -->
    <camera-present value="1" />

    <!-- Standard camera settings for player.
             distance : Distance between kart and camera
             forward-up-angle : Angle between camera and plane of kart (pitch) when the camera is pointing forward
             forward-smoothing : if true, use smoothing (forward-up-angle become relative to speed) when pointing forward
             backward-distance : Distance between kart and camera (reverse)
             backward-up-angle : Angle between camera and plane of kart (pitch) when the camera is pointing backwards. This is usually larger than the forward-up-angle, since the kart itself otherwise obstricts too much of the view
             fov : Focal distance (single player)
             reverse-look-use-soccer-cam : Use ball camera in soccer mode, instead of reverse -->
    <standard-camera-settings
        distance="1.000000"
        forward-up-angle="0.000000"
        forward-smoothing="true"
        backward-distance="2.000000"
        backward-up-angle="5.000000"
        fov="80"
        reverse-look-use-soccer-cam="false"
    >
    </standard-camera-settings>

    <!-- Drone chase camera settings for player.
             distance : Distance between kart and camera
             forward-up-angle : Angle between camera and plane of kart (pitch) when the camera is pointing forward
             forward-smoothing : if true, use smoothing (forward-up-angle become relative to speed) when pointing forward
             backward-distance : Distance between kart and camera (reverse)
             backward-up-angle : Angle between camera and plane of kart (pitch) when the camera is pointing backwards. This is usually larger than the forward-up-angle, since the kart itself otherwise obstricts too much of the view
             fov : Focal distance (single player)
             reverse-look-use-soccer-cam : Use ball camera in soccer mode, instead of reverse -->
    <drone-camera-settings
        distance="2.600000"
        forward-up-angle="33.000000"
        forward-smoothing="false"
        backward-distance="2.000000"
        backward-up-angle="10.000000"
        fov="100"
        reverse-look-use-soccer-cam="false"
    >
    </drone-camera-settings>

    <!-- Saved custom camera settings for player.
             distance : Distance between kart and camera
             forward-up-angle : Angle between camera and plane of kart (pitch) when the camera is pointing forward
             forward-smoothing : if true, use smoothing (forward-up-angle become relative to speed) when pointing forward
             backward-distance : Distance between kart and camera (reverse)
             backward-up-angle : Angle between camera and plane of kart (pitch) when the camera is pointing backwards. This is usually larger than the forward-up-angle, since the kart itself otherwise obstricts too much of the view
             fov : Focal distance (single player)
             reverse-look-use-soccer-cam : Use ball camera in soccer mode, instead of reverse -->
    <saved-camera-settings
        distance="1.000000"
        forward-up-angle="0.000000"
        forward-smoothing="true"
        backward-distance="2.000000"
        backward-up-angle="5.000000"
        fov="80"
        reverse-look-use-soccer-cam="false"
    >
    </saved-camera-settings>

    <!-- (Debug) camera settings.
             reverse_look_threshold : If the kart is driving backwards faster than this value,
switch automatically to reverse camera (set to 0 to disable).
             fpscam_rotation_speed : How fast the first person camera's direction speed changes when
moving the mouse (means acceleration).
             fpscam_smooth_rotation_max_speed : How fast the first person camera's direction can change.
             fpscam_angular_velocity : How fast the first person camera's rotation speed changes.
             fpscam_max_angular_velocity : How fast the first person camera can rotate. -->
    <camera
        reverse_look_threshold="0"
        fpscam_rotation_speed="0.003000"
        fpscam_smooth_rotation_max_speed="0.040000"
        fpscam_angular_velocity="0.020000"
        fpscam_max_angular_velocity="1.000000"
    >
    </camera>

    <!-- Name of the .items file to use. -->
    <item_style value="items" />

    <!-- Name of the last track used. -->
    <last_track value="addon_black-forest" />

    <!-- Last selected track group -->
    <last_track_group value="Add-Ons" />

    <!-- Discord Client ID (Set to -1 to disable) -->
    <discord_client_id value="-1" />

    <!-- If debug logging should be enabled for rich presence -->
    <rich_presence_debug value="false" />

    <!-- Name of the skin to use -->
    <skin_name value="classic" />

    <!-- Minimap Setup Settings
             display : display: 0 bottom-left, 1 middle-right, 2 hidden, 3 center
             size : Size of the the minimap (480 = full screen height; scaled afterwards)
             ai-icon : The size of the icons for the AI karts on the minimap.
             player-icon : The size of the icons for the player kart. -->
    <Minimap
        display="1"
        size="180.000000"
        ai-icon="16.000000"
        player-icon="20.000000"
    >
    </Minimap>

    <!-- PowerUp Setup Settings
             display : display: 0 center, 1 right side, 2 hidden (see karts' held powerups)
             powerup-icon-size : Size of the powerup icon (scaled afterwards) -->
    <PowerUp
        display="0"
        powerup-icon-size="64.000000"
    >
    </PowerUp>

    <!-- Everything related to spectator mode.
             camera-distance : Distance between kart and camera.
             camera-angle : Angle between ground, kart and camera. -->
    <Spectator
        camera-distance="6.750000"
        camera-angle="40.000000"
    >
    </Spectator>

    <!-- Everything related to handicaps.
             per_player_difficulty : If handicapped users can be selected -->
    <Handicap
        per_player_difficulty="false"
    >
    </Handicap>

    <!-- Status of internet: 0 user wasn't asked, 1: allowed, 2: not allowed -->
    <enable_internet value="1" />

    <!-- Everything related to hardware configuration.
             report-version : Version of hardware report that was reported last
             random-identifier : A random number to avoid duplicated reports.
             hw-report-enabled : If HW reports are enabled. -->
    <HWReport
        report-version="0"
        random-identifier="0"
        hw-report-enabled="false"
    >
    </HWReport>

    <!-- Always show the login screen even if last player's session was saved. -->
    <always_show_login_screen value="false" />

    <!-- Addon and news related settings
             news_last_updated : Time news was updated last.
             news_frequency : How often news should be updated.
             news_display_count : How often all news messages have been displayed
             last_important_message_id : Don't show important message with this or a lower id again
             news_list_shown_id : News before this id has been shown once so no red dot
             addon_last_updated : Time addon-list was updated last.
             latest_addon_time : Latest approved addon time. -->
    <AddonServer
        news_last_updated="1744721926"
        news_frequency="0"
        news_display_count=""
        last_important_message_id="-1"
        news_list_shown_id="1056"
        addon_last_updated="1744715118"
        latest_addon_time="1743665355"
    >
    </AddonServer>

    <!-- Which language to use (language code or 'system') -->
    <language value="system" />

    <!-- Whether to enable track debugging features -->
    <artist_debug_mode value="false" />

    <!-- Whether to hide the GUI (artist debug mode) -->
    <debug_hide_gui value="false" />

    <!-- Enable all karts and tracks: 0 = disabled, 1 = everything except final race, 2 = everything -->
    <unlock_everything value="0" />

    <!-- Allows one to set commandline args in config file -->
    <commandline value="" />

</stkconfig>