games/OpenLoco 26.09 FreeBSD
Open source re-implementation of Chris Sawyer's Locomotion
- System
- FreeBSD
- Repository
- FreeBSD ports
- Maintainer
- [email protected]
- Port added
- Last update
- Commit
4c03e06aa7- License
- MIT
- Categories
- games
- Package size
- 118006.2 KiB, 430232.8 KiB installed
Description
OpenLoco is an open-source re-implementation of Chris Sawyer's Locomotion (CSL), the spiritual successor to Transport Tycoon. OpenLoco aims to improve the game similar to how OpenTTD improved Transport Tycoon, and OpenRCT2 improved RollerCoaster Tycoon.
CSL was originally written in x86 assembly, building on top of the RollerCoaster Tycoon 2 engine. However, the engine has changed substantially enough that OpenLoco currently does not share its codebase with OpenRCT2.
As of December 2025, we have completed reimplementing the game in C++. It is now our goal to get a solid multiplayer experience working in OpenLoco. It is also our goal to increase the map and vehicle limits. However, until creating a new save format (NSF), we are bound to the limits imposed by the CSL save format (SV5/SC5).
Install
Binary package:
pkg install OpenLoco
From the ports tree:
cd /usr/ports/games/OpenLoco/ && make install clean
To depend on this port in another port's Makefile:
RUN_DEPENDS= OpenLoco>0:games/OpenLoco
Packages
The version each package repository carries. “-” means the repository builds no package of it, “n/a” that there is no such repository.
| Repository | aarch64 | amd64 | armv6 | armv7 | i386 |
|---|---|---|---|---|---|
| FreeBSD:14:latest | 26.09 | 26.09 | - | - | 26.09 |
| FreeBSD:14:quarterly | 26.09 | 26.09 | n/a | - | 26.09 |
| FreeBSD:15:latest | 26.09 | 26.09 | n/a | - | - |
| FreeBSD:15:quarterly | 26.09 | 26.09 | n/a | n/a | n/a |
| FreeBSD:16:latest | 26.09 | 26.09 | n/a | n/a | n/a |
| FreeBSD:16:quarterly | n/a | n/a | n/a | n/a | n/a |
Dependencies
As this port's Makefile names them.
Build 2
${LOCALBASE}/include/sfl: devel/sfl-library${LOCALBASE}/lib/cmake/GTest/GTestConfig.cmake: devel/googletest
Library 5
libfmt.so: devel/libfmtlibpng16.so: graphics/pnglibSDL3.so: devel/sdl3libtbb.so: devel/onetbblibyaml-cpp.so: devel/yaml-cpp
The full lists below include those, and their dependencies in turn.
Build dependencies 68
- archivers/liblz4
- archivers/zstd
- audio/libmysofa
- audio/openal-soft
- converters/fribidi
- converters/libiconv
- devel/binutils
- devel/cmake-core
- devel/gettext-runtime
- devel/googletest
- devel/hwloc2
- devel/jsoncpp
- devel/level-zero
- devel/libdatrie
- devel/libepoll-shim
- devel/libffi
- devel/libfmt
- devel/libinotify
- devel/libpciaccess
- devel/libthai
- devel/libudev-devd
- devel/libunistring
- devel/libuv
- devel/llvm12
- devel/ninja
- devel/onetbb
- devel/pkgconf
- devel/readline
- devel/sdl3
- devel/sfl-library
- devel/spirv-llvm-translator
- devel/yaml-cpp
- dns/libidn2
- graphics/libdrm
- graphics/libglvnd
- graphics/mesa-libs
- graphics/png
- graphics/spirv-tools
- graphics/vulkan-loader
- graphics/wayland
- lang/perl5.42
- lang/python312
- math/mpdecimal
- misc/hwdata
- ports-mgmt/pkg
- print/indexinfo
- security/rhash
- sysutils/libdisplay-info
- textproc/expat2
- textproc/libxml2
- x11/libX11
- x11/libXScrnSaver
- x11/libXau
- x11/libXcursor
- x11/libXdamage
- x11/libXdmcp
- x11/libXext
- x11/libXfixes
- x11/libXi
- x11/libXrandr
- x11/libXrender
- x11/libXtst
- x11/libXxf86vm
- x11/libxcb
- x11/libxkbcommon
- x11/libxshmfence
- x11/xkeyboard-config
- x11/xorgproto
Run dependencies 53
- archivers/liblz4
- archivers/zstd
- audio/libmysofa
- audio/openal-soft
- converters/fribidi
- converters/libiconv
- devel/hwloc2
- devel/level-zero
- devel/libdatrie
- devel/libepoll-shim
- devel/libffi
- devel/libfmt
- devel/libinotify
- devel/libpciaccess
- devel/libthai
- devel/libudev-devd
- devel/llvm12
- devel/onetbb
- devel/readline
- devel/sdl3
- devel/spirv-llvm-translator
- devel/yaml-cpp
- graphics/libdrm
- graphics/libglvnd
- graphics/mesa-libs
- graphics/png
- graphics/spirv-tools
- graphics/vulkan-loader
- graphics/wayland
- lang/perl5.42
- misc/hwdata
- print/indexinfo
- sysutils/libdisplay-info
- textproc/expat2
- textproc/libxml2
- x11/libX11
- x11/libXScrnSaver
- x11/libXau
- x11/libXcursor
- x11/libXdamage
- x11/libXdmcp
- x11/libXext
- x11/libXfixes
- x11/libXi
- x11/libXrandr
- x11/libXrender
- x11/libXtst
- x11/libXxf86vm
- x11/libxcb
- x11/libxkbcommon
- x11/libxshmfence
- x11/xkeyboard-config
- x11/xorgproto
No port depends on this one.
Configuration
No options to configure.
- USES
- cmake localbase:ldflags openal pkgconfig
- Service scripts
- none
Message after installing
Files
pkg-plist 4049
- bin/OpenLoco
- share/applications/openloco.desktop
- share/doc/openloco/CHANGELOG.md
- share/doc/openloco/CONTRIBUTORS.md
- share/doc/openloco/LICENSE
- share/doc/openloco/README.md
- share/icons/hicolor/128x128/apps/openloco.png
- share/icons/hicolor/16x16/apps/openloco.png
- share/icons/hicolor/256x256/apps/openloco.png
- share/icons/hicolor/32x32/apps/openloco.png
- share/icons/hicolor/512x512/apps/openloco.png
- share/icons/hicolor/64x64/apps/openloco.png
- share/icons/hicolor/scalable/apps/openloco.svg
- share/OpenLoco/language/ca-ES.yml
- share/OpenLoco/language/cs-CZ.yml
- share/OpenLoco/language/de-DE.yml
- share/OpenLoco/language/en-GB.yml
- share/OpenLoco/language/en-US.yml
- share/OpenLoco/language/es-ES.yml
- share/OpenLoco/language/fr-FR.yml
- share/OpenLoco/language/it-IT.yml
- share/OpenLoco/language/ja-JP.yml
- share/OpenLoco/language/ko-KR.yml
- share/OpenLoco/language/nl-NL.yml
- share/OpenLoco/language/pl-PL.yml
- share/OpenLoco/language/pt-BR.yml
- share/OpenLoco/language/ru-RU.yml
- share/OpenLoco/language/sk-SK.yml
- share/OpenLoco/language/sv-SE.yml
- share/OpenLoco/language/tr-TR.yml
- share/OpenLoco/language/zh-CN.yml
- share/OpenLoco/objects/openloco_objects-src/objects/Common/Land/OG_VOID/0.png
- share/OpenLoco/objects/openloco_objects-src/objects/Common/Land/OG_VOID/1.png
- share/OpenLoco/objects/openloco_objects-src/objects/Common/Land/OG_VOID/10.png
- share/OpenLoco/objects/openloco_objects-src/objects/Common/Land/OG_VOID/11.png
- share/OpenLoco/objects/openloco_objects-src/objects/Common/Land/OG_VOID/12.png
- share/OpenLoco/objects/openloco_objects-src/objects/Common/Land/OG_VOID/13.png
- share/OpenLoco/objects/openloco_objects-src/objects/Common/Land/OG_VOID/14.png
- share/OpenLoco/objects/openloco_objects-src/objects/Common/Land/OG_VOID/15.png
- share/OpenLoco/objects/openloco_objects-src/objects/Common/Land/OG_VOID/16.png
- share/OpenLoco/objects/openloco_objects-src/objects/Common/Land/OG_VOID/17.png
- share/OpenLoco/objects/openloco_objects-src/objects/Common/Land/OG_VOID/18.png
- share/OpenLoco/objects/openloco_objects-src/objects/Common/Land/OG_VOID/19.png
- share/OpenLoco/objects/openloco_objects-src/objects/Common/Land/OG_VOID/2.png
- share/OpenLoco/objects/openloco_objects-src/objects/Common/Land/OG_VOID/20.png
- share/OpenLoco/objects/openloco_objects-src/objects/Common/Land/OG_VOID/21.png
- share/OpenLoco/objects/openloco_objects-src/objects/Common/Land/OG_VOID/22.png
- share/OpenLoco/objects/openloco_objects-src/objects/Common/Land/OG_VOID/23.png
- share/OpenLoco/objects/openloco_objects-src/objects/Common/Land/OG_VOID/24.png
- share/OpenLoco/objects/openloco_objects-src/objects/Common/Land/OG_VOID/25.png
- share/OpenLoco/objects/openloco_objects-src/objects/Common/Land/OG_VOID/26.png
- share/OpenLoco/objects/openloco_objects-src/objects/Common/Land/OG_VOID/27.png
- share/OpenLoco/objects/openloco_objects-src/objects/Common/Land/OG_VOID/28.png
- share/OpenLoco/objects/openloco_objects-src/objects/Common/Land/OG_VOID/29.png
- share/OpenLoco/objects/openloco_objects-src/objects/Common/Land/OG_VOID/3.png
- share/OpenLoco/objects/openloco_objects-src/objects/Common/Land/OG_VOID/30.png
- share/OpenLoco/objects/openloco_objects-src/objects/Common/Land/OG_VOID/31.png
- share/OpenLoco/objects/openloco_objects-src/objects/Common/Land/OG_VOID/32.png
- share/OpenLoco/objects/openloco_objects-src/objects/Common/Land/OG_VOID/33.png
- share/OpenLoco/objects/openloco_objects-src/objects/Common/Land/OG_VOID/34.png
- share/OpenLoco/objects/openloco_objects-src/objects/Common/Land/OG_VOID/35.png
- share/OpenLoco/objects/openloco_objects-src/objects/Common/Land/OG_VOID/36.png
- share/OpenLoco/objects/openloco_objects-src/objects/Common/Land/OG_VOID/37.png
- share/OpenLoco/objects/openloco_objects-src/objects/Common/Land/OG_VOID/38.png
- share/OpenLoco/objects/openloco_objects-src/objects/Common/Land/OG_VOID/39.png
- share/OpenLoco/objects/openloco_objects-src/objects/Common/Land/OG_VOID/4.png
- share/OpenLoco/objects/openloco_objects-src/objects/Common/Land/OG_VOID/40.png
- share/OpenLoco/objects/openloco_objects-src/objects/Common/Land/OG_VOID/41.png
- share/OpenLoco/objects/openloco_objects-src/objects/Common/Land/OG_VOID/42.png
- share/OpenLoco/objects/openloco_objects-src/objects/Common/Land/OG_VOID/43.png
- share/OpenLoco/objects/openloco_objects-src/objects/Common/Land/OG_VOID/44.png
- share/OpenLoco/objects/openloco_objects-src/objects/Common/Land/OG_VOID/45.png
- share/OpenLoco/objects/openloco_objects-src/objects/Common/Land/OG_VOID/46.png
- share/OpenLoco/objects/openloco_objects-src/objects/Common/Land/OG_VOID/47.png
- share/OpenLoco/objects/openloco_objects-src/objects/Common/Land/OG_VOID/48.png
- share/OpenLoco/objects/openloco_objects-src/objects/Common/Land/OG_VOID/49.png
- share/OpenLoco/objects/openloco_objects-src/objects/Common/Land/OG_VOID/5.png
- share/OpenLoco/objects/openloco_objects-src/objects/Common/Land/OG_VOID/50.png
- share/OpenLoco/objects/openloco_objects-src/objects/Common/Land/OG_VOID/51.png
- share/OpenLoco/objects/openloco_objects-src/objects/Common/Land/OG_VOID/52.png
- share/OpenLoco/objects/openloco_objects-src/objects/Common/Land/OG_VOID/53.png
- share/OpenLoco/objects/openloco_objects-src/objects/Common/Land/OG_VOID/54.png
- share/OpenLoco/objects/openloco_objects-src/objects/Common/Land/OG_VOID/55.png
- share/OpenLoco/objects/openloco_objects-src/objects/Common/Land/OG_VOID/56.png
- share/OpenLoco/objects/openloco_objects-src/objects/Common/Land/OG_VOID/57.png
- share/OpenLoco/objects/openloco_objects-src/objects/Common/Land/OG_VOID/58.png
- share/OpenLoco/objects/openloco_objects-src/objects/Common/Land/OG_VOID/59.png
- share/OpenLoco/objects/openloco_objects-src/objects/Common/Land/OG_VOID/6.png
- share/OpenLoco/objects/openloco_objects-src/objects/Common/Land/OG_VOID/60.png
- share/OpenLoco/objects/openloco_objects-src/objects/Common/Land/OG_VOID/61.png
- share/OpenLoco/objects/openloco_objects-src/objects/Common/Land/OG_VOID/62.png
- share/OpenLoco/objects/openloco_objects-src/objects/Common/Land/OG_VOID/63.png
- share/OpenLoco/objects/openloco_objects-src/objects/Common/Land/OG_VOID/64.png
- share/OpenLoco/objects/openloco_objects-src/objects/Common/Land/OG_VOID/65.png
- share/OpenLoco/objects/openloco_objects-src/objects/Common/Land/OG_VOID/66.png
- share/OpenLoco/objects/openloco_objects-src/objects/Common/Land/OG_VOID/67.png
- share/OpenLoco/objects/openloco_objects-src/objects/Common/Land/OG_VOID/68.png
- share/OpenLoco/objects/openloco_objects-src/objects/Common/Land/OG_VOID/69.png
- share/OpenLoco/objects/openloco_objects-src/objects/Common/Land/OG_VOID/7.png
- share/OpenLoco/objects/openloco_objects-src/objects/Common/Land/OG_VOID/70.png
The first 100 are listed.
distinfo 2
| File | Size | SHA256 |
|---|---|---|
| OpenLoco-OpenLoco-v26.09_GH0.tar.gz | 4.965262e+06 | b60cc6712440496cb7aca270503af28ca83bc71805889d516de7d91aa7d73910 |
| OpenLoco-OpenGraphics-v0.1.12_GH0.tar.gz | 2.091243e+08 | 4dd7800ca0e51a72e0411474643e6f7030aff9874c732300fc7a9648927ca597 |