DRRR tends towards an unplayable Framerate on my Linux Mint Cinnamon Desktop

poyribn

Member
This is everything i can think of that affects the Performance of Dr. Robotnik’s Ring Racers on my Computer:

Dr. Robotnik's Ring Racers is Version 2.4.
I have only played Singleplayer in Gear 1.

Code:
System:
  Kernel: 6.8.0-124-generic arch: x86_64 bits: 64 compiler: gcc v: 13.3.0 clocksource: tsc
  Desktop: Cinnamon v: 6.6.7 tk: GTK v: 3.24.41 wm: Muffin v: 6.6.3 vt: 7 dm: LightDM v: 1.30.0
    Distro: Linux Mint 22.3 Zena base: Ubuntu 24.04 noble
Machine:
  Type: Desktop Mobo: BIOSTAR model: H110MHV3 serial: <superuser required>
    uuid: <superuser required> UEFI: American Megatrends v: 5.12 date: 11/30/2017
CPU:
  Info: quad core model: Intel Core i7-6700 bits: 64 type: MT MCP smt: enabled arch: Skylake-S
    rev: 3 cache: L1: 256 KiB L2: 1024 KiB L3: 8 MiB
  Speed (MHz): avg: 900 min/max: 800/4000 cores: 1: 900 2: 900 3: 900 4: 900 5: 900 6: 900 7: 900
    8: 900 bogomips: 54398
  Flags: avx avx2 ht lm nx pae sse sse2 sse3 sse4_1 sse4_2 ssse3 vmx
Graphics:
  Device-1: AMD Lexa PRO [Radeon 540/540X/550/550X / RX 540X/550/550X] vendor: Sapphire
    driver: amdgpu v: kernel arch: GCN-4 pcie: speed: 8 GT/s lanes: 8 ports: active: HDMI-A-1
    empty: DP-1,DVI-D-1 bus-ID: 01:00.0 chip-ID: 1002:699f class-ID: 0300 temp: 51.0 C
  Display: x11 server: X.Org v: 21.1.11 with: Xwayland v: 23.2.6 driver: X: loaded: amdgpu
    unloaded: fbdev,modesetting,vesa dri: radeonsi gpu: amdgpu display-ID: :0 screens: 1
  Screen-1: 0 s-res: 1920x1080 s-dpi: 96 s-size: 508x285mm (20.00x11.22") s-diag: 582mm (22.93")
  Monitor-1: HDMI-A-1 mapped: HDMI-A-0 model: BenQ EW2775ZH serial: <filter> res: 1920x1080
    hz: 60 dpi: 82 size: 598x336mm (23.54x13.23") diag: 686mm (27") modes: max: 1920x1080
    min: 720x400
  API: EGL v: 1.5 hw: drv: amd radeonsi platforms: device: 0 drv: radeonsi device: 1 drv: swrast
    gbm: drv: kms_swrast surfaceless: drv: radeonsi x11: drv: radeonsi inactive: wayland
  API: OpenGL v: 4.6 compat-v: 4.5 vendor: amd mesa v: 25.2.8-0ubuntu0.24.04.1 glx-v: 1.4
    direct-render: yes renderer: AMD Radeon RX 550 / 550 Series (radeonsi polaris12 ACO DRM 3.57
    6.8.0-124-generic) device-ID: 1002:699f
  API: Vulkan v: 1.3.275 layers: 3 surfaces: xcb,xlib device: 0 type: discrete-gpu driver: N/A
    device-ID: 1002:699f device: 1 type: cpu driver: N/A device-ID: 10005:0000
Audio:
  Device-1: Intel 100 Series/C230 Series Family HD Audio vendor: Biostar Microtech Intl Corp
    driver: snd_hda_intel v: kernel bus-ID: 00:1f.3 chip-ID: 8086:a170 class-ID: 0403
  Device-2: AMD Baffin HDMI/DP Audio [Radeon RX 550 640SP / 560/560X] vendor: Sapphire
    driver: snd_hda_intel v: kernel pcie: speed: 8 GT/s lanes: 8 bus-ID: 01:00.1 chip-ID: 1002:aae0
    class-ID: 0403
  API: ALSA v: k6.8.0-124-generic status: kernel-api
  Server-1: PipeWire v: 1.0.5 status: active with: 1: pipewire-pulse status: active
    2: wireplumber status: active 3: pipewire-alsa type: plugin
Network:
  Device-1: Realtek RTL8111/8168/8211/8411 PCI Express Gigabit Ethernet vendor: Biostar Microtech
    Intl Corp RTL8111/8168/8411 driver: r8169 v: kernel pcie: speed: 2.5 GT/s lanes: 1 port: d000
    bus-ID: 02:00.0 chip-ID: 10ec:8168 class-ID: 0200
  IF: enp2s0 state: down mac: <filter>
  Device-2: Ralink RT5392 PCIe Wireless Network Adapter driver: rt2800pci v: 2.3.0 pcie:
    speed: 2.5 GT/s lanes: 1 bus-ID: 03:00.0 chip-ID: 1814:5392 class-ID: 0280
  IF: wlp3s0 state: down mac: <filter>
  Device-3: ASUSTek Realtek 8188EUS [USB-N10 Nano] driver: rtl8xxxu type: USB rev: 2.0
    speed: 480 Mb/s lanes: 1 bus-ID: 1-2.4.4:10 chip-ID: 0b05:18f0 class-ID: 0000 serial: <filter>
  IF: wlxcc28aa68d59d state: up mac: <filter>
Drives:
  Local Storage: total: 990.11 GiB used: 63.76 GiB (6.4%)
  ID-1: /dev/sda vendor: Seagate model: ST1000DM003-1ER162 size: 931.51 GiB speed: 6.0 Gb/s
    tech: HDD rpm: 7200 serial: <filter> fw-rev: CC45 scheme: GPT
  ID-2: /dev/sdb vendor: Generic model: Flash Disk size: 58.59 GiB type: USB rev: 3.1 spd: 5 Gb/s
    lanes: 1 tech: SSD serial: <filter> fw-rev: 8.01 scheme: MBR
Partition:
  ID-1: / size: 915.32 GiB used: 55.22 GiB (6.0%) fs: ext4 dev: /dev/sda3
  ID-2: /boot/efi size: 512 MiB used: 6.1 MiB (1.2%) fs: vfat dev: /dev/sda2
Swap:
  ID-1: swap-1 type: file size: 2 GiB used: 12 KiB (0.0%) priority: -2 file: /swapfile
USB:
  Hub-1: 1-0:1 info: hi-speed hub with single TT ports: 10 rev: 2.0 speed: 480 Mb/s lanes: 1
    chip-ID: 1d6b:0002 class-ID: 0900
  Hub-2: 1-1:2 info: Genesys Logic Hub ports: 4 rev: 2.0 speed: 480 Mb/s lanes: 1 power: 100mA
    chip-ID: 05e3:0610 class-ID: 0900
  Device-1: 1-1.1:4 info: Holtek Wired Keyboard (78/79 key) [RPI 5] type: keyboard,HID
    driver: hid-generic,usbhid interfaces: 2 rev: 2.0 speed: 1.5 Mb/s lanes: 1 power: 100mA
    chip-ID: 04d9:0006 class-ID: 0300
  Device-2: 1-1.3:12 info: 8BitDo Receiver type: HID driver: hid-generic,usbhid interfaces: 1
    rev: 2.0 speed: 12 Mb/s lanes: 1 power: 480mA chip-ID: 2dc8:3100 class-ID: 0300
  Device-3: 1-1.4:9 info: Pixart Imaging Optical Mouse type: mouse driver: hid-generic,usbhid
    interfaces: 1 rev: 1.1 speed: 1.5 Mb/s lanes: 1 power: 100mA chip-ID: 093a:2510 class-ID: 0301
  Hub-3: 1-2:3 info: Realtek RTS5411 Hub ports: 4 rev: 2.1 speed: 480 Mb/s lanes: 1
    chip-ID: 0bda:5411 class-ID: 0900
  Hub-4: 1-2.4:6 info: Realtek RTS5411 Hub ports: 4 rev: 2.1 speed: 480 Mb/s lanes: 1
    chip-ID: 0bda:5411 class-ID: 0900
  Device-1: 1-2.4.4:10 info: ASUSTek Realtek 8188EUS [USB-N10 Nano] type: Network
    driver: rtl8xxxu interfaces: 1 rev: 2.0 speed: 480 Mb/s lanes: 1 power: 500mA chip-ID: 0b05:18f0
    class-ID: 0000 serial: <filter>
  Device-2: 1-7:5 info: Realtek USB 2.0 multicard reader type: mass storage driver: ums-realtek
    interfaces: 1 rev: 2.0 speed: 480 Mb/s lanes: 1 power: 500mA chip-ID: 0bda:0158 class-ID: 0806
    serial: <filter>
  Hub-5: 1-10:8 info: VIA Labs USB2.0 Hub ports: 5 rev: 2.1 speed: 480 Mb/s lanes: 1
    chip-ID: 2109:2824 class-ID: 0900
  Device-1: 1-10.5:11 info: VIA Labs USB Billboard Device type: billboard driver: N/A
    interfaces: 1 rev: 2.0 speed: 480 Mb/s lanes: 1 power: 100mA chip-ID: 2109:8824 class-ID: 1100
    serial: <filter>
  Hub-6: 2-0:1 info: super-speed hub ports: 4 rev: 3.0 speed: 5 Gb/s lanes: 1 chip-ID: 1d6b:0003
    class-ID: 0900
  Hub-7: 2-2:2 info: Realtek Hub ports: 4 rev: 3.2 speed: 5 Gb/s lanes: 1 chip-ID: 0bda:0411
    class-ID: 0900
  Hub-8: 2-2.4:4 info: Realtek Hub ports: 4 rev: 3.2 speed: 5 Gb/s lanes: 1 chip-ID: 0bda:0411
    class-ID: 0900
  Device-1: 2-3:3 info: Alcor Micro Flash Drive type: mass storage driver: usb-storage
    interfaces: 1 rev: 3.1 speed: 5 Gb/s lanes: 1 power: 800mA chip-ID: 058f:6387 class-ID: 0806
    serial: <filter>
Sensors:
  System Temperatures: cpu: 30.0 C mobo: N/A gpu: amdgpu temp: 51.0 C
  Fan Speeds (rpm): N/A gpu: amdgpu fan: 1047
Repos:
  Packages: 2730 pm: dpkg pkgs: 2708 pm: flatpak pkgs: 22
  No active apt repos in: /etc/apt/sources.list
  Active apt repos in: /etc/apt/sources.list.d/official-package-repositories.list
    1: deb http: //packages.linuxmint.com zena main upstream import backport
    2: deb http: //archive.ubuntu.com/ubuntu noble main restricted universe multiverse
    3: deb http: //archive.ubuntu.com/ubuntu noble-updates main restricted universe multiverse
    4: deb http: //archive.ubuntu.com/ubuntu noble-backports main restricted universe multiverse
    5: deb http: //security.ubuntu.com/ubuntu/ noble-security main restricted universe multiverse
  Active apt repos in: /etc/apt/sources.list.d/signal-xenial.list
    1: deb [arch=amd64 signed-by=/usr/share/keyrings/signal-desktop-keyring.gpg] https: //updates.signal.org/desktop/apt xenial main
Info:
  Memory: total: 8 GiB available: 7.72 GiB used: 3.76 GiB (48.7%)
  Processes: 301 Power: uptime: 2h 40m states: freeze,mem,disk suspend: s2idle wakeups: 0
    hibernate: platform Init: systemd v: 255 target: graphical (5) default: graphical
  Compilers: gcc: 13.3.0 Client: Unknown python3.12 client inxi: 3.3.34

My Graphics Processor is AMD RX 550.
Although my Screen can only show 60 FPS, setting the maximum Framerate to 60 FPS makes the Game practically max out at 50 FPS.
Setting the maximum Framerate to 90 FPS makes it possible to hit 60 FPS — or higher, which is not visible on my Screen — only at the best Times.
Switching between Software Renderer and Legacy GL Renderer doesn’t make a noticable Change in Performance, as well as enabling the SalCRT Sharp Filter.
Setting an above-minimum Resolution or enabling 3D Models does make Performance much worse.

The most problematic Track from the Cups that i could unlock is Opulence Zone from Spring Cup, constantly dipping down to 2 FPS with 8 Racers.
Only at 3 Racers does this Tracks become playable, with a pretty consistent 20 FPS, only briefly dipping down to 5 FPS at the Part with the spinning Spikeball Obstacles.

I currently can’t afford to buy Upgrades for my Desktop Hardware, but i still appreciate Suggestions for future Hardware Purchases so that DRRR will run better.
I would want a consistent 30 FPS, i think Hardware for 60 FPS would cost me too much Money at the best Times.

I have Ideas on how the Game could be optimized, with the Options that i guess would be more effective being listed first:
Heads-up, i don’t know the Internals of the Game, so i may unknowingly repeat something that is already implemented.
  1. A separate Physics Framerate, with optional Movement Interpolation on higher visual Framerates.
    This feels like a Must. If the Game tries to calculate every Racer as often as possible, it’s no Wonder that it chokes.
    You could set an optimum Physics Framerate — i suggest adjustable, 60 FPS by Default — that is used to calculate Physics reguardless of visual Framerate.
    If the Physics Framerate is good for stable Physics but results in choppy Visuals, that Problem could be solved with Interpolating visual Movement between the previous Physics Frame and the current Physics Frame.
    This Interpolation results in the Game showing the Physics State from slightly in the Past but that should be pretty much unnoticable if the Physics Framerate is set to 60 FPS.
  2. A "Low-compute CPUs" toggle. Enabling it exchanges the fair Opponents with ones that are more aggressively optimized, with the Side Effect that they may cheat when they’re out of View.
    A pretty simple Method could be to not calculate every off-Screen CPU on every Frame, but only 1 or 2 or Half the off-Screen CPUs on every Frame.
    In Exchange, the off-Screen CPUs get to move further per computed Frame, to catch up with the Frames on which they weren’t calculted.
  3. Vulkan Renderer. I don’t think it would help me much because Graphics are not my Bottleneck. Clearly, processing 8 Racers is the Bottleneck.
  4. "Extra low Track Detail" Graphics Setting, which exchanges most Track Textures for flat Colors and reduces the Polygon Count even further.
    It would also swap unreachable 3D Decorations with Billboards — the same Technology that the Driver Visuals use with 3D Models disabled — for Instance the Fountain in Northern District Zone in Ring Cup.
    Again, that would not help much because Graphics are not the Bottleneck.
    While Vulkan Renderer is future-proofing the Game, "Extra low Track Detail" is most certainly a Waste to implement.
 
i don't know much about hardware, but i did compare your system info to mine (i use mint too) since the game runs mostly fine on my laptop, and i think the issue is related in some way to your cpu

also i'm pretty sure internally the game runs at 35 tps
 
Try using the software renderer with Parallel Software enabled. It will use more cpu cores for a boost in fps. Personally i don't use Linux at all but even on my very underpowered dual core intel core i3 it's at least playable.
 
Parallel Software Rendering was already turned on because that’s the default Setting and i haven’t changed it.
Oddly, turning it off improves Performance.
Now Opulence Zone plays just as okay with 4 Drivers as it did with 3 Drivers before.

Limiting the FPS to 35, enabling VSync, and setting the Audio Buffer Size to 256, noticably improve Performance, but i can still play Opulence Zone only with up to 4 Drivers.
Muting all Audio doesn’t change Performance.
 
Last edited:
The Cause of bad Performance for Dr. Robotnik’s Ring Racers on my Desktop was surprising.

The Bottleneck was a Background Service which i installed much earlier than DRRR, it’s called Folding@Home.
I won’t elaborate what it does, to keep this Thread strictly about Dr. Robotnik’s Ring Racers.

This Background Service always gets out of the Way of other Programs. It only uses leftover compute Resources.
But it failed to notice how much compute Resources DRRR needs to run smooth, so DRRR ran badly.

With its default Settings, the Background Service uses all except one CPU Cores. On my Desktop, that’s 8 − 1 = 7.
Disabling the Background Service or setting it to use only 1 CPU Core finally makes DRRR run smooth.

Now i increased these Settings and i still get a consistent 30+ FPS in Dr. Robotnik’s Ring Racers:
  • Resolution: 200p → 400p
  • Maximum FPS: 35 → 65
  • Weather Draw Distance: None → Shortest
  • Skyboxes: Off → On
  • Parallel Software Rendering: Off → On
  • Audio Mixing Buffer Size: 256 → 2048
Now this is good to play on Gear 2.
 
Last edited:
Back
Top