Skip to content

openOMSI 0.3.50

Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 06 Nov 01:20
· 114 commits to main since this release
Immutable release. Only release title and notes can be modified.
11ff78b

openOMSI 0.3.50

Beta, for testing. The launcher keeps players on the stable release; this build is for anyone who wants to try what comes next. Report what breaks in an issue, with the version. openOMSI needs an original OMSI 2 installation to run; it contains no game content.

In short

This beta should bring a big performance gain. The frame-rate fixes from the bisect, Vulkan by default on AMD Radeon cards, and the new DLSS and FSR 3 upscalers together should make the game run much faster for many players. Tell us in an issue how it runs on your machine, with your card and settings.

Windows players can try NVIDIA DLSS (RTX cards, installed optionally from the launcher) and AMD FSR 3 (any card) upscaling on DirectX 12 and Vulkan, both marked experimental. The game draws faster from the driver's seat with MSAA, and on Windows with an AMD Radeon, Auto now opens Vulkan. A phone or tablet on the home Wi-Fi can become part of the cockpit with the new Remote cockpit. Trolleybus poles go on the wire by hand on their rope, and Lua plugins can draw live cables. The pause-menu settings are grouped into cards and can be searched. Around 30 bug fixes cover AI traffic at junctions, trams with two cabs, flowing water on scenery, far mountains, a Vulkan picture freeze, white discs on signs, the player's texture detail under memory pressure, and diagnostics on phones.

Performance note: in the St-Servan measurements on an AMD RX 7900 XT (AB O560 M from the driver's seat, Max preset without ray tracing, 4x MSAA, 2560x1440), DirectX 12 went from 90.6 to 100.0 fps (about 10 %) and Vulkan from 108.8 to 138.5 fps (about 27 %) against the previous main. A Radeon player who keeps Auto moves from DirectX 12 to Vulkan, so 90.6 to 138.7 fps in that scene. 0.3.48 made 84.9 / 109.5 fps there and 0.2.30 made 114.0 / 161.0, so 0.2.30 is still faster; the remaining steps are being bisected. These figures come from one card under Windows: NVIDIA, Intel, Linux AMD and hybrid laptops were not measured. DLSS and FSR 3 figures are in their own bullets below; with the upscalers off, the measured frame rate is the same as without them.

Graphics and performance

  • NVIDIA DLSS upscaling, experimental, on Windows with an RTX card. Settings, Graphics, Upscaling offers DLSS on DirectX 12 and Vulkan once NVIDIA's DLLs are beside the game. openOMSI does not ship them: on an RTX card, Install NVIDIA DLSS under Settings, Graphics in the launcher downloads them from NVIDIA after the player accepts NVIDIA's licences, and checks their signature. While DLSS is chosen it takes the place of Anti-aliasing and Render scale, which are hidden; the HUD is still drawn at full size on top. The choice applies from the next start. If it cannot start or stops working, the game goes on at full size with the player's MSAA and game.log says why. In the PR's still-standing run on an RTX 5080 (3264x1836, Enhanced), DLSS Quality gave 332.1 fps against 303.6 with 4x MSAA on DirectX 12, and 343.5 against 313.6 on Vulkan, where memory after 2 minutes rose from 1655 to 1938 MB; the upscaled picture is drawn at 2177x1225, so the two are not the same picture. A tester measured 89 fps without DLSS, 127 with Quality and 175 with Balanced on an RTX 5070 Ti at 4K, and found it working on an RTX 3060 Laptop and an RTX 2070. The picture comes out about 1 to 2 % darker on the road, and a DLSS screenshot lacks the light sharpening the window gets (#3681, @m3rlinek01, @isaacsa2).
  • AMD FSR 3 upscaling, experimental, on Windows with any card. FSR 3 works on DirectX 12 and Vulkan, and its DLLs ship in the Windows x64 package, so nothing needs installing. Like DLSS, it replaces Anti-aliasing and Render scale while chosen. On the RTX 5080, FSR 3 Quality gave 357.3 fps against 303.6 on DirectX 12 and 394.4 against 313.6 on Vulkan. A tester at 1920x1080 on the Max preset measured 53 fps off and 68 to 120 fps from Quality to Ultra Performance on an RX 580, and 26 fps off and 38 to 80 fps on a GTX 1050 2 GB (with some stutter once its 2 GB were full). Where the processor is the limit it gives no gain: on an RX 7900 XT in a CPU-bound scene, Quality was 8 to 10 % slower than off. On the bus's dash FSR 3 looks softer than DLSS (#3681, @m3rlinek01, @isaacsa2).
  • What DLSS and FSR 3 do not cover yet. Both are Windows only, and both are off in VR and with triple screens; photos and other off-screen pictures are drawn without them. Choosing one switches the game to DirectX 12, unless Vulkan is chosen and its DLLs are beside the game. Not tested with VR, online play, mods or Intel cards. Frame generation is not part of this release (#3681, @m3rlinek01, @isaacsa2).
  • Faster frames from the driver's seat with MSAA. Most of the player's own bus had been left out of the MSAA depth prefill since 0.2.46 and 0.3.34, so the world behind the cab's walls, roof and dashboard was shaded in full before the bus covered it. The bus goes back into the prefill, except behind see-through covers, which keep their earlier behaviour. This was worth about 10 fps on DirectX 12 and 12 on Vulkan on the RX 7900 XT. It needs multisampled shading and a 17th texture slot; Android and Apple devices keep the previous prefill. It costs one extra multisampled depth texture, about 59 MB at 2560x1440 with 4x MSAA. Nothing changes on screen (#3713, @thibautgnt).
  • Enhanced runs faster on Vulkan with an AMD card. The enhanced shader reads occlusion and bounced light in a form AMD's Vulkan compiler handles better, worth about 17 fps on the RX 7900 XT; other cards and APIs keep the previous form. Linux AMD also gets this form and was not measured (#3713, @thibautgnt).
  • Auto opens Vulkan on an AMD Radeon. On Windows, when the first discrete card is an AMD one, the Graphics API setting Auto opens Vulkan on that card instead of DirectX 12; other cards keep DirectX 12 first. If Vulkan loses the device in game, the game restarts on DirectX 12 and writes ~/.openomsi/vulkan-lost, so Auto keeps to DirectX 12 for that card until the next version (deleting the file also resets it). An explicit Graphics API setting or OMSI_BACKEND is unchanged (#3713, @thibautgnt).
  • The player's bus keeps its texture detail, and passenger displays stop piling up adverts. Under memory pressure, the player's bus and cab keep their loaded detail, while AI and timetable buses still fit the room left. Script-switched pictures, such as an advert display cycling through frames, are bounded in number and size and release old frames, instead of filling the card until the game dropped MSAA. Tested in drives of 70 minutes (AVBWU Red, line 171) and 53 minutes (ADL E500 MMC, line 112) on Cross Harbour with an RTX 4050 Laptop, Vulkan, Enhanced+ and 4x MSAA under constrained budgets: no allocation failure and MSAA kept. Memory still grew during those drives, so this is not a fix for every long-session memory report. Integrated GPUs, other APIs, VR and online play were not checked (#3551, @FakeShxp3).
  • No more frozen picture on Vulkan when the card runs out of memory. An out-of-memory error no longer rebuilds the renderer without MSAA, a rebuild that ran out of memory again and froze the picture while the sound went on (#3690, @thibautgnt).
  • No white discs on signs seen from behind, in Enhanced. A surface turned away from the camera gets no sun highlight (map water excepted), nor a lamp or headlight highlight. Two-sided content with backwards normals also loses its lamp highlight (#3690, #3691, @thibautgnt).
  • A fixed render scale is sharp again at once. Choosing a fixed render scale in game after the automatic one had lowered the picture now takes it back to full size within a few seconds, instead of at the next start (#3687, @thibautgnt).
  • The optimiser can turn texture compression back on. When the graphics card is the limit and the card's own texture compression is on, one of its steps turns texture compression on at the next start (#3691, @thibautgnt).

Remote cockpit

  • A phone or tablet becomes part of the cockpit. Switch it on in Esc, Options, Interface, Remote cockpit, Open, Switch on, then scan the QR code or type the address and 6-digit code. The phone shows a dashboard with the map, route, next stops, speed, delay and fuel; the bus's own buttons (every door, lights, indicators, brakes, engine start, kneeling, camera views); the bus's live destination sign and the line and destination picker; a touch steering wheel and pedals; and a layout editor saved per bus or for every bus. Nothing to install on the phone and no account. A USB wheel or pad takes over again as soon as the phone's wheel is let go. Off until switched on. For trusted home networks only: the page and its commands travel unencrypted, so on a shared Wi-Fi someone listening could replay a paired device's token; the game refuses devices outside private address ranges. Measured cost with a phone connected: about 0.07 ms per frame on the main thread. Not tested on a real phone against Windows (firewall prompt) nor in VR (#3695, @thibautgnt).

Driving, vehicles and traffic

  • AI cars at signalled junctions no longer hold lights or lock up. A car asks only for the lights it would stop at, not for a light inside the junction its turn joins. Cars locked in a circle at a big junction are let go, the longest waiter first, when the only red light is one past the junction. Not tested with the reporters' maps (Eichenhöhe, Tver, Aachen) (#3690, @thibautgnt).
  • Oncoming cars no longer stop for the bus in right-hand bends. The bus is looked for along its turn only, instead of a straight box reaching over the oncoming lane (#3690, @thibautgnt).
  • BRT screen doors work again. A light program without a green phase, such as a platform's screen doors, holds its stop point again; the rule for the changeover to green now applies only to real signals (#3690, @thibautgnt).
  • Stops refill one passenger at a time. After a bus took everybody, a stop gets one more passenger every 10 to 15 s instead of filling up all at once. Crowds at terminals are smaller as a result (#3690, @thibautgnt).
  • The navigator's next stop matches the info bar for a duty picked in game. It learns the places of the stops beyond the loaded tiles, as a duty started from the launcher already did (#3690, @thibautgnt).
  • Departure displays that are the stop object itself list the buses due, not only the clock (#3690, @thibautgnt).
  • No AI twin of the player's bus at the terminus. A tour picked for a day it does not run on also takes today's same trip at the same minute from the AI. LAN players' tours are not covered (#3690, @thibautgnt).
  • AI buses on depot runs show no line, as in OMSI 2, instead of the name of their timetable file ("EITAG" on Waldhofen 2013). The depot-exit jam of the same report is not addressed (#3687, @thibautgnt).
  • IVECO liveries with a leading space in their name are found, and the engine and gearbox chosen with them apply again (#3690, @thibautgnt).
  • Trams and trains with a cab at each end can be driven from either. Control cables now carry signals from the rear cars to the front one too, so a car behind can tell the leading car something (the NF6D's cabs could not be switched on). Not driven with the NF6D or other cabled trains here; a test covers the cables. The report's other NF6D points are not addressed (#3687, @thibautgnt).
  • Tram wheels turn at the right speed, and automatic switches are not thrown back. Rail wheels turned twice as fast as the vehicle went. The player's tram no longer throws a switch back onto its old branch while its script is moving it (#3690, @thibautgnt).
  • A wheel back in the middle is centred. Leftover key steering is cleared once a wheel is turned. While the wheel is off centre, keys and wheel cannot steer together (#3690, @thibautgnt).
  • Mirror-camera screens show their picture. A camera is redrawn when the screen showing it is in view, not only when the camera is, so cameras mounted high outside the cab no longer leave their screens black (#3690, @thibautgnt).
  • Parts the current view does not draw can no longer be clicked. From the cab, outside-only parts can no longer be opened through the windscreen, and from outside, cab-only switches can no longer be reached while door openers and the battery switch still can. An outside part that is also drawn from the cab, such as the PAZ 32054's hood, can still be clicked from inside; that case is still open (#3687, @thibautgnt).
  • The radio key plays the internet radio in any bus whose own radio is off, including buses without one and the stock MAN NL202. While the bus's own radio plays, it wins (#3687, @thibautgnt).
  • The flashlight shines ahead when there is no live cursor. With "Flashlight follows the cursor" on, the beam points straight ahead between taps on a touch screen, and on foot once a controller is used, until the mouse moves again (#3687, @thibautgnt).

On foot

  • No more frame-rate drop walking near fences. A fence's gate is looked for only in the paths within reach, not along every footpath under a long fence every frame (#3690, @thibautgnt).
  • Riding an AI bus sounds like riding inside. Sitting in an AI bus, the street, the rain and the scenery are heard from inside it, as in the player's own bus (#3690, @thibautgnt).

Maps and scenery

  • Rivers flow and escalators move. [texcoordtransX] / [texcoordtransY] now scroll the textures of scripted scenery objects, as on vehicles: the river on Bad Hügelsdorf and the escalators of Berlin-Spandau's U-Bahn stations (#3687, @thibautgnt).
  • Objects up to 25 km away are no longer cut off. Backdrop mountains beyond 6 km show; what is drawn is still chosen within 6 km, so no more objects are drawn (#3690, @thibautgnt).
  • Caxias City is no longer dark at 4 PM. A map with a time zone other than UTC+1 and no location gets the sun of its own zone, while keeping Berlin's latitude for day lengths and seasons. This applies to every such map; whether OMSI 2 does the same was not verified (#3690, @thibautgnt).
  • Countdown traffic lights no longer stutter every second. Script texts are redrawn only within 250 m. A text first seen farther away keeps how it looked until it comes within 250 m. The report's stutter while paused is not explained by this (#3690, @thibautgnt).
  • Attach rows keep their object at tile borders. A row's last object due a little past the end of its spline chain is placed at the end instead of dropped, and an object that fell between two tiles' records is drawn. Stock maps look the same; the report's custom map was not loaded (#3687, @thibautgnt).

Trolleybuses and plugins

  • Trolley poles go on the wire by hand, on their rope. From outside, click a pole, move it by its rope with the mouse and let go just under the wire for its spring to put the shoe on. A pole that comes off stays loose, stopping at 45 degrees unless the bus sets max_angle, until the driver puts it back. Ctrl+R puts both poles on or takes them down from anywhere; in the cab, plain R and T no longer move the poles (R is the gearbox's reverse) (#3710, @GUMOLIT).
  • Buses can script their own pole gear and sounds. A vehicle's script can drive its lifting gear (Trolley_Pole<k>_Gear), be the hand on the rope, and play its own recordings for each pole event, as OMSI 2 does for doors. Sound triggers from 0.3.49 are renamed the OMSI way (trolley_snap is now ev_trolleyarc, and so on): a vehicle using the old names hears the built-in sounds. Tested on the Lublin map with the Trollino add-ons; not tested on touch screens, in VR, online, or saving with a pole in hand (#3710, @GUMOLIT).
  • Lua plugins can draw cables in the world. omsi.cable draws thin round tubes (wires, ropes) from points the plugin gives, in the world or tied to the bus, so a trolleybus plugin can show wires that sag and swing under the shoe. Nothing changes without a plugin that uses it. Tested in game on Windows only (#3718, @dima-au).

Launcher and interface

  • Pause-menu settings are grouped into cards and can be searched. Search finds a setting by its name or description; the field sits beside the title in wide windows and below it in narrow ones. Settings and saved values are unchanged. Not checked in VR, online or with the mobile keyboard at runtime (#3694, @shamough1792).
  • Chinese, Japanese and Korean text shows on Fedora. The game also finds Noto Sans CJK where Fedora installs it, so menus and the HUD no longer show boxes (#3687, @thibautgnt).

Privacy and diagnostics

  • Every game on a phone or tablet gets its own diagnostics record. Before, only the first game since the app started was recorded. The support package now keeps only the day of each game, not its exact times, and time spent minimised no longer counts as slow frames. Phones often close the app without the game's exit, so many mobile records still end as open, like a crash (#3701, @thibautgnt).
  • game.log names an unreadable font file and the meshes whose winding is kept, to help explain missing display digits and mirrored adverts (#3691, @thibautgnt).

For developers

  • Pull requests pass the architecture guard again after the 2026-11-04 bug-fix merges, and reloading a vehicle type in game clears a cached cable list from the two-cab fix (#3717, @thibautgnt).

Thank you

A big thank you to everyone who made this release: the authors, the reviewers and the players who tested and sent numbers. This one was a team effort.

  • @m3rlinek01, for DLSS and FSR 3 upscaling, and for the careful rounds of fixes and measurements behind them.
  • @isaacsa2, for the RTX check, Vulkan for both upscalers, the upscaling test runs, the Windows packaging of AMD's DLLs and the optional NVIDIA installer, and for reviewing nearly every pull request in this release.
  • @FakeShxp3, for keeping the player's textures sharp, bounding display memory, and the long test drives on Cross Harbour.
  • @GUMOLIT, for trolley poles by hand on their rope and scriptable pole gear and sounds.
  • @dima-au, for omsi.cable and live wires and ropes from Lua plugins.
  • @shamough1792, for grouped and searchable pause-menu settings, in every language.
  • Thibaut (@thibautgnt), for the frame-rate bisect and the fixes that brought back most of the lost frames, Auto on Vulkan for Radeon cards, the Remote cockpit, about 30 bug-board fixes, per-game diagnostics, and the reviews that got DLSS and FSR 3 ready for this beta.
  • @Bazingania, for testing DLSS and FSR 3 on an RTX 5070 Ti, RTX 3060 Laptop, RTX 2070, RX 580 and GTX 1050, with numbers.
  • @Petrxlovs12, for testing the cab-click fix on the PAZ 32054 and the screenshots that showed what is still open.

Full changelog: 0.3.49 → 0.3.50.

Downloads

Platform Download
Windows x64 openOMSI-0.3.50-windows-x64-setup.exe (installer) or openOMSI-0.3.50-windows-x64.zip
Windows ARM64 openOMSI-0.3.50-windows-arm64-setup.exe (installer) or openOMSI-0.3.50-windows-arm64.zip
macOS (Apple silicon) openOMSI-0.3.50-macos-arm64.dmg (disk image) or openOMSI-0.3.50-macos-arm64.zip
macOS (Intel) openOMSI-0.3.50-macos-x64.dmg (disk image) or openOMSI-0.3.50-macos-x64.zip
Linux x64 openOMSI-0.3.50-linux-x64.zip
Linux ARM64 openOMSI-0.3.50-linux-arm64.zip
Android (arm64, 8.0+) openOMSI-0.3.50-android-arm64.apk
Dedicated server, Linux openOMSI-0.3.50-server-linux-x64.zip, openOMSI-0.3.50-server-linux-arm64.zip
Dedicated server, Windows openOMSI-0.3.50-server-windows-x64.zip, openOMSI-0.3.50-server-windows-arm64.zip

The SHA-256 of every file is in SHA256SUMS: sha256sum -c SHA256SUMS --ignore-missing checks the ones downloaded.

VirusTotal

The files of this release are being scanned, results appear here as they come, by the antivirus engines of VirusTotal. When an engine flags a file, the maintainers look into it; a file reviewed as a false positive says why, and the engine's maker is told.

File VirusTotal
openOMSI-0.3.50-android-arm64.apk Clean: no engine out of 65
openOMSI-0.3.50-linux-arm64.zip Clean: no engine out of 67
openOMSI-0.3.50-linux-x64.zip Clean: no engine out of 59
openOMSI-0.3.50-macos-arm64.dmg Checked: 1 of 60 engines, a heuristic guess, usually a false positive
openOMSI-0.3.50-macos-arm64.zip Clean: no engine out of 66
openOMSI-0.3.50-macos-x64.dmg Clean: no engine out of 58
openOMSI-0.3.50-macos-x64.zip Clean: no engine out of 67
openOMSI-0.3.50-server-linux-arm64.zip Clean: no engine out of 59
openOMSI-0.3.50-server-linux-x64.zip Clean: no engine out of 45
openOMSI-0.3.50-server-windows-arm64.zip Clean: no engine out of 68
openOMSI-0.3.50-server-windows-x64.zip Clean: no engine out of 66
openOMSI-0.3.50-windows-arm64-setup.exe Checked: 1 of 67 engines, a heuristic guess, usually a false positive
openOMSI-0.3.50-windows-arm64.zip Checked: 1 of 67 engines, a heuristic guess, usually a false positive
openOMSI-0.3.50-windows-x64-setup.exe Checked: 2 of 66 engines, a heuristic guess, usually a false positive
openOMSI-0.3.50-windows-x64.zip Checked: 1 of 60 engines, a heuristic guess, usually a false positive
openOMSI-android.apk Clean: no engine out of 65