How it's built, patched and set up for its played test. The numbers are under Test runs.
OpenRCT2 0.5.6 with Walnut’s big-endian port (upstream builds only for little-endian CPUs), on its software renderer: its OpenGL renderer needs OpenGL 3.3. The engine is free; RollerCoaster Tycoon 2’s data is not, so Walnut doesn’t offer it: Walnut Games makes a package of it from your own copy (the Overview’s Installation, and the Guides). Nobody has played it on Walnut yet. In the first benchmark (Electric Fields at 960x540, scaled 2x) it drew 21 to 24 frames a second, with the console’s memory nearly all in use.
Status
Published, Untested: OpenRCT2 0.5.6 ported to big-endian ppc64, packaged, installed on the PS3 and baselined, not
played yet. Under qemu-ppc64 the build matches amd64 bit for bit on every check (gtest 275/275, 35 parks after
10000 ticks, 210 screenshots, 169 track designs: the port).
Software renderer only (the GL engine needs GL 3.3 core). It needs RollerCoaster Tycoon 2’s data from the
player’s own copy: game-data-packager’s roller-coaster-tycoon2-data (build.toml [data_setup], in
/usr/share/games/roller-coaster-tycoon2, a path upstream searches: a fresh home finds it there, gdp-step1 on
the PS3), which the licensed suite now builds too, or our older licensed rct2-data (from the CD,
/usr/share/games/rct2, the path our patch 0005 adds). On the PS3 it runs at 21-24 fps in Electric Fields (10 fps in Six Flags Magic
Mountain) with the console’s RAM nearly gone.
- Package (
0.5.6+ds-1+ps3.N, packages/openrct2,TYPE=upstream): debsopenrct2(any),openrct2-data,openrct2-music(all). Patches 0001-0004 and 0006 are the big-endian port, 0005 the RCT2 search path (the game finds RCT2 in/usr/share/games/rct2, no config needed) and a-Werroroption, 0007 the console defaults: a fresh config starts fullscreen at the desktop’s resolution (fullscreen_mode2), with window scale desktop height / 540 from 1080 lines up (2 at 1080p: a 960x540 canvas scaled up), and without the changelog (only after an upgrade); existing configs keep their settings. Build rules: Release, scripting, OpenGL, Discord, HTTP and the version checker off,OPENRCT2_WERROR=OFF,DOWNLOAD_*=OFFwith the asset zips unpacked into data/ first; g2.dat and friends are built by the ppc64openrct2-cliitself during the build (identical to little-endian); tests not run in the build (they need RCT2 data). About 45 min a build under qemu. Sizes: openrct2 5.7 MB (installed 31 MB), openrct2-data 23 MB (37 MB), openrct2-music 43 MB. - The headless CLI needs
game_pathin its config (upstream searches for RCT2 only when not headless):openrct2-cli set-rct2 /usr/share/games/rct2once; the GUI finds it by itself. With the base game’s data alone the log saysUnable to open ObjData/BATTRRAM.POB: OpenRCT2’s bundled objects include Time Twister’s (rct2tt.ride.battrram, the battering ram), whose images point atObjData/BATTRRAM.DAT;FindLegacyObjecttries.DAT, then.POB, and names the last one it tried. No release has a.POB; the.DATis in the expansions package (below), and with it installed the warning goes. - Data: the licensed suite’s
roller-coaster-tycoon2-datais game-data-packager’s own package, made from the owner’s RollerCoaster Tycoon 2 CD image (make licensed-data PKG=roller-coaster-tycoon2-data INPUT=<image>: the ISO unpacked with 7z, gdp 89 withunshieldin the games builder, about a minute; a 443 MB deb, 550 MB installed with the ride music;X-Walnut-Edition: full,X-Walnut-Release: cd), the same name and files the console’s import makes. Until 2026-10-27 it was our ownrct2-data(rct2-data.sh, now retired:/usr/share/games/rct2, about 115 MB without the ride music): its published 1.0-2 stays, the benchmark recipe still points at its path, and the console counts either as the game’s data. Nothing from the disc is run; the packages go to the licensed suite only, the data is never committed. - Sources the console’s import takes (gdp 89 with our patch 0009, checked on the PS3 2026-10-27): the 2002 CD
(in the drive or as an ISO: base only, release
cd), the GOG Triple Thrill Pack installersetup_rollercoaster_tycoon_2_triple_thrill_pack_2.01.043_(17987).exe, a Steam or GOG install folder, and both builds of GOG’ssetup_rollercoaster_tycoon2_2.0.0.6.exe. That name covers two installers: the 519354792-byte one gdp knew and a 2012 build of 519393624 bytes (goggame.dll, GameuxInstallHelper.dll), which gdp 89 refused asunknown-version. Patch 0009 adds the second build assetup_rollercoaster_tycoon2_2.0.0.6.exe?gog_2012. Both are the Triple Thrill Pack, with all 2454 files of the two packages identical to the TTP installer’s. A Steam-rip folder of the TTP (a repacked GOG install) has 17 Wacky Worlds files that match no release: four scenarios (South America - Rio Carnival.SC6630097 bytes instead of 630453, Oasis, African Diamond Mine, Great Wall of China) and 13 ObjData objects (HIPPO01/02, 1X2LION, LINCOLNS, STEX54-64, …). Both GOG installers carry the files gdp knows, so the rip’s versions get no alternative. From that copy the base game imports; the expansions package can’t be made (gdp: “could not find ObjData/HIPPO01.DAT”). - Expansions:
roller-coaster-tycoon2-wacky-worlds-time-twister-data(gdp’sexpansion_forthe base package, 1416 files, installed into the same/usr/share/games/roller-coaster-tycoon2) is optional in[data_setup](editionexpansion): a plain import asks gdp for both, the expansions only where the source has them. With it, OpenRCT2 indexes 57 scenarios instead of 26, shows Wacky Worlds and Time Twister tabs, loads Time Twister’s Sherwood Forest, and logs noBATTRRAMwarning. - Screenshots of a windowed OpenRCT2 come out blue and purple: the game draws right (webcam), but SDL’s GL window has a GLX visual with byte-swapped masks (red 0xff00, green 0xff0000, blue 0xff000000) and xwd decodes the window through them. Fullscreen captures are right. Not the data, not the build: 2026-10-27.
On the PS3 (batch ssdroot8)
First runs (batch 2026-10-19-ssdroot8-openrct2): kernel .472, SSD root, Mesa ps3.545~dev, openrct2
ps3.574, the recipe (benchmark/recipe.sh: Electric Fields at 960x540 x2, 300 s per run,
STALLS=1 MEM=1), 2 runs of each variant, rotated, none interfered; the right picture in all 16 photos.
| Variant | Steady fps (HUD) | 1% low | Frames over 100 ms | CPU | Lowest MemAvailable | Peak RSS |
|---|---|---|---|---|---|---|
base (sound, threads, 960x540 x2) |
23.5 (23, 24) | 11.0 | 11 and 16 (13 s) | 399 s | 7.5 and 12.3 MiB | 129-135 MB |
lean (no sound, 1 thread, 1 arena) |
22 (23, 21) | 10.9 | 16 and 13 (12 s) | 328 s | 14.5 and 15.4 MiB | 130-137 MB |
big (Six Flags Magic Mountain) |
10 (10, 10) | 3.4 | 287 and 280 (52 s) | 357 s | 9.1 and 9.3 MiB | 135 MB |
sdlsw (SDL software renderer, no GL) |
no number | no number | no number | 289 s | 14.5 and 15.7 MiB | 133-138 MB |
- The HUD fps is the rate of the GL swap; the game’s simulation is capped at 40 ticks a second and runs below
that.
sdlswhas no Mesa in the process, so no HUD and no other fps source: 28% less CPU thanbaseis its only number; it needs a frame counter of its own. leanbuys 70 s of CPU and about 5 MiB of the lowest MemAvailable, not fps.bigis CPU-bound: the simulation of 2,700 guests makes every frame longer than 100 ms.- The 7.5-9.2 s longest frame is the park’s load under swap, not gameplay: in all six GL runs it begins 19-26 s
after the start, made of vswap (1.8-3.2 s), reclaim (1.4-2.3 s) and CPU (2,300-3,600 major faults,
5,000-9,300 swap-ins); a second 1.3-4.0 s frame follows. After that
baseandleanhave a few 100-450 ms frames and no more. - Memory: the process keeps 100-138 MB in swap (the 70 MB entity table,
kMaxEntities65535, is 58 MB resident at the start and 25 MB swapped at the end), VRAM peak 25.7 MiB, GART 19 MiB. MemAvailable falls to 7.5-16 MiB in every variant: the console is at its floor with nothing else running. The entity table at 16384 (about -43 MB) is the first thing to try for the load stall, after the oracle is re-run. - ALSA underruns: 289-317 (
base), 410-416 (big), 238-299 inleanandsdlswalthoughleanhas its sound off (why is not known). Not judged by ear.
Investigations
- 2026-10-27 the blue screenshots and the console defaults: the colours are an xwd artefact of a windowed GL window (byte-swapped GLX visual masks), patch 0007.
- 2026-10-19 the big-endian port: what was ported, the bugs beyond PR #27114, the checks, the RAM on the PC.
- 2026-10-19 the big-endian port estimate (written before the port).
Research
What the surveys and plans said about it, newest first; each line names its source, the section and the date.
- 2026-10-19, game-reeval.md, “Ranked table”: no hard no: the GL renderer needs GL 3.3 core (no GL2 path), but the software renderer through SDL works; contrib,
architecture-is-little-endian; the BE port can reuse the closed AmigaOS PR #27114 (~1,700 endian lines in 33 files, applies to 0.5.6 with 2 conflicts) plus TD6/TD4 import, RLE zoom, ImageImporter, Ogg/FLAC fixes: 7-11 person-days; data: our rct2-data deb; measured GUI no-GL 282-300 MB RSS, headless 154 MB, trimmed estimate 210-230 MB. Effort L. Verdict: worth a build, staged (RAM decides).
Build
| Packages | openrct2 |
|---|---|
| Suite | not in the game suite yet |
| Game data | the player supplies it (see the game's page); plays with roller-coaster-tycoon2-data, rct2-data |
| Licensed data | roller-coaster-tycoon2-data, rct2-data (built from the player's own copy, never public) |
Our source packages
- openrct2 source
7 patches
- Big-endian core of PR #27114 (AmigaOS port), applied to v0.5.6
- Big-endian: clean up the PR core for Linux, fill the gaps
- Big-endian: host-ordered byte members of RCT12 research items and track elements; test hooks
- Big-endian: S6/S4 swaps as functions compiled on every host; open-park hook
- Linux: find RCT2 in /usr/share/games/rct2; OPENRCT2_WERROR option
- Big-endian: object entry checksum and coordinate structs in the network serialiser
- Console defaults: a fresh configuration starts fullscreen at the desktop's resolution, without the changelog
Played test
What a played session sets up (rating/test.toml); the medal comes from these sessions only.
| Process | openrct2 |
|---|---|
| Set aside | ~/.config/OpenRCT2, ~/.config/OpenRCT2-ps3bench (the game starts on fresh defaults) |