SteonMod
LEGO Dimensions Recomp screenshot
RecompPlayable

LEGO Dimensions Recomp

Proof that a toys-to-life game can be recompiled: a native PC build of LEGO Dimensions from the Xbox 360 version.

Proof that a toys-to-life game can be recompiled. A native PC build of LEGO Dimensions, made by statically recompiling the Xbox 360 release: unlocked FPS, mod's, DLC's, SDL_GameControllerDB, multilingual support and a real or emulated Toy Pad. Public demo build. See the README below for details.

Dimensions Recompiled

A native PC build of LEGO Dimensions, made by statically recompiling the Xbox 360 release.

Download  ·  How to make mods  ·  Build it yourself  ·  LEGO Dimensions Discord


Why this exists

I started this to answer one question: can a toys-to-life game be recompiled, and is a native PC port of LEGO Dimensions actually realistic?

The answer is yes, and this is the proof. It boots, plays, saves, loads DLC, and talks to a Toy Pad, as a normal Windows program.

This is not a claim to be the one correct way to play on PC. Emulation works, and the emulator projects did the groundwork that made this possible. If xenia, RPCS3, Cemu or shadPS4 serves you better, use them. I respect every project around this game and none of them are competitors.

There is a second reason, and it matters to me more than the first one. I want this to make someone else want to build something. If it gets one person curious enough to open a disassembler for the first time, it has already paid for itself.

So, to be blunt about what this is not: it is not a claim on the idea. Nobody's LEGO Dimensions port is blocked because this one exists. If a team gets together tomorrow and writes a better one from scratch, without using a single byte of what is here, that is exactly the outcome I was after and I will say so happily. Take the idea, ignore the code, do it properly.

And whatever you end up building — respect what other people are working on.

How Claude was used

I would rather you hear this from me than guess.

disassembly and file formats with me, and wrote large parts of the runtime glue, the installer, the mod tooling and this page.

What it did not do is decide what to build or judge whether the result was any good. The goal and the scope were mine. The domain knowledge about this game, its Toy Pad, its saves and its archives came from years of community work, not from a model. And above all I played the game. Every "this is broken", "this feels off" and "this is finally right" came from a person in front of the actual thing. A model cannot tell you a world failed to load or a cutscene hung. That loop is what turned something that compiled into something that plays.

If you are skeptical about AI being used this way, that is fair and I will not argue with you. Judge it by whether it works.

Install

No game data is included here. You bring your own, and the installer checks that it is the right one before it does anything.

Have ready:

  • The Xbox 360 disc, dumped and extracted. Dump your disc to an ISO, then

    extract that ISO to a folder with a tool like extract-xiso or Xbox Image Browser. The installer wants the folder, not the ISO. It is right when the folder contains Default.xex alongside GAME.DAT and GAME.HDR. Only the original release works, and the installer will tell you if yours is a different build.

  • Title Update 23. Not 24, not 22. The recomp was built from the TU23

    executable and will not run on anything else, so this one is checked by hash and a wrong update is refused. Give it either the raw package file, which is named tu00000003_00000000 and has no extension, or a folder holding Default.xexp, PATCH.DAT and PATCH.HDR.

  • DLC, optional. Point the installer at a folder holding your DLC packages

    and it takes all of them at once. Bought a pack later? Run the installer again and pick "Add DLC to an install I already have" on the first screen - it asks only for the packages and the folder you installed into, writes nothing else, and leaves your saves, settings and mods alone.

Then just run DimensionsRecompiled-Setup.exe and follow the wizard. It writes a README.txt next to the game with the hotkeys, settings and save locations.

Updates are handled in game. Turn them off with F4 → Online → Check for updates at start.

The Toy Pad

Out of the box the installer sets up the LEGO Toypad app, which stands in for the portal and lets you pick figures with a controller.

Your real Toy Pad works too - the Wii U, PlayStation 3, PlayStation 4, Xbox 360 and Xbox One pads are all supported. Windows will not let the game reach the pad on its own, so swap the driver once with Zadig: tick Options, List All Devices, pick your pad and check its USB ID before you change anything:

In the listUSB IDPad
LEGO READER V2.100E6F 0241Wii U / PS3 / PS4
LEGO(R) DIMENSIONS(TM)24C6 FA01Xbox 360
LEGO(R) DIMENSIONS(TM)0E6F 0141Xbox One

Choose libusb-win32 and press Install Driver (on a pad Windows already has a driver for the button reads Replace Driver - same step). Then in game press F4, open Toy Pad, untick Emulated Toy Pad and restart. The pad lights up and real figures work.

To hand the pad back to Windows later, uninstall that driver in Device Manager.

The game can also start and stop the companion app for you: F4 → Toy Pad → Open the Toy Pad app with the game. It launches with the game and closes with it, and an app you started yourself is left alone.

Controls

Any XInput pad works, and so does the keyboard, with no setting to find first:

KeyboardController
WASDleft stick
arrowsright stick
J K H UA B X Y
E QLB RB
I OLT RT
Enter or EscSTART
=BACK

BACK sat on Backspace until 0.1.13 and kept firing by accident; it moved to =, and anyone who had rebound it keeps their own binding.

Every bind is editable in F4 under Keyboard bindings, with Rebind, Reset and Clear on each line. Keyboard and pad are live at the same time. Mouse look exists but is off by default: Controls → Mouse moves the camera.

Settings

F4 opens the settings. Since 0.1.17 they are arranged for people rather than for the code: Display, Performance, Graphics, Audio, Controls, Keyboard bindings, Shortcuts, Toy Pad, Mods and fixes, Online. Hover a line for what it does; an orange label means it takes effect after a restart. Everything technical is still there under Advanced, by its raw name - that is what a bug report may ask you to change.

Performance holds what actually costs frame rate: Resolution scale, the Output resolution cap, Anisotropic filtering and Depth of field blur. The last one is new: the game has no switch of its own, so the recomp drops that render pass entirely when it is off - a sharper picture and a little less GPU work.

The cheat menu

Del opens a memory scanner built into the game - the same idea as Cheat Engine, without needing Cheat Engine.

Pick a value type, type the number you can see on screen, First scan, then change it in game and Next scan = until a few addresses are left. Click one and Write once or Freeze it. If the number is not shown anywhere, start from Unknown value and narrow down with Increased / Decreased / Changed / Unchanged. Scans run on their own thread, so the game keeps moving while they work, and candidates are held as a bitmap rather than a capped list, so an unknown-value hunt actually converges.

Save as cheat stores an address under a name in cheats_5752084B.txt beside the game and re-applies it on every launch, only while its tick box is on.

Cheat Engine itself still works, and docs/cheat-engine.md explains the two things that otherwise make it look broken: guest memory is a file mapping, so MEM_MAPPED scanning has to be switched on, and every value is big-endian. Ready-made big-endian types for it are in tools/cheatengine. The console command membase prints where guest memory landed for the current run and converts addresses either way.

Languages

The game ships its official translations, and the recomp picks one the way the console did, with a language ID. Set user_language in legodimensions.toml while the game is closed, or find it in F4 under Advanced / Kernel:

user_language = 4   # French

Some translations share a language ID and are told apart by the country instead, so user_country picks between them. Both Spanish translations sit on one ID, and French may behave the same way.

user_language = 5    # Spanish
user_country  = 71   # ... as spoken in Mexico
user_languageLanguage
1English (default)
3German
4French
5Spanish
6Italian
-Russian
user_countryCountry
103USA (default)
31Spain
71Mexico
34France
16Canada

This is a beta build. Expect bugs.

graphics and lost audio still happen, and finding them is why it is public. How well it runs varies by machine, because the graphics path still has to translate what the Xbox 360 GPU was asked to do.

Known issues:

  • Random freeze in some levels (seen most in the LEGO Movie world): the

    picture stops, the music keeps playing. Two game threads end up waiting on each other. Being worked on; if it happens to you, attach the hang-*.dmp the game writes next to the exe to your issue.

  • Stutter when a level or cutscene loads, settling after about half a

    minute. It comes from how GPU data is synced back during those scenes. A faster way exists but broke geometry on AMD cards, so it is off for now.

  • Mods can break abilities. With several characters out at once, some mods

    have stopped characters from using gadgets and ranged attacks. Turn mods off in F8 before reporting gameplay bugs.

  • Starting a new save and quitting before the opening cutscenes finish can

    leave a save that will not load. Play until you are walking around first.

  • 60 FPS is an unlock the original never ran at, and most remaining bugs

    live there. Set Performance → Frame rate target to 30 in F4 before reporting anything odd.

  • Some scenes render with wrong colours or missing effects (darker

    lighting in parts of the Simpsons and Ghostbusters worlds, for one).

  • Lag with AMD FSR 1 or CAS selected. On weaker GPUs the upscaling

    filter itself can cost frames. If the game stutters, set F4 → Graphics → Upscaling filter to Bilinear (fastest).

  • Windows on ARM (Snapdragon laptops, Surface Pro 11) is not supported:

    the game starts but shows a black screen.

  • Screen tearing. The vsync setting never controlled it - despite the

    name, it only paces the emulated console - so it is now locked off and greyed out of F4 rather than left there to be tried. Stopping the tearing properly needs deeper changes to how finished frames reach the screen; until then, your driver's own vertical sync or a frame limiter is the workaround.

  • The Vulkan backend is a work in progress. Direct3D 12 is the working one

    and stays the default. See below if you want to try Vulkan anyway.

  • Not every code path has been visited, so an unexplored corner can still hit a

    hard stop rather than a graphical glitch.

Vulkan, if you want to try it

Set gpu_backend to vulkan in legodimensions.toml next to the game.

What was wrong: a texture-fetch path multiplied 16-bit samples by 65535 and blew entire worlds out to flat white with the HUD still drawn on top. That branch is now switched off, so colours come out correct - but darker than intended, because the scaling it was meant to do is simply not happening yet. Making it correct rather than absent is the actual fix, and it is not in this release.

Put plainly: Vulkan went from unusable to look at it and see. That is all.

What is planned

Roughly in the order I want to get to it. No dates.

  • GPU recompilation - in progress now. Graphics is the one part still

    done the emulator way: the game's draw calls are translated while it runs. A native Direct3D 12 renderer is being built that does to them what was already done to the CPU code - shaders translated ahead of time, and the game's draw calls going straight to the PC GPU instead of through an emulated Xbox 360 one. That is where the remaining performance and most of the visual bugs are. It already draws frames in development builds, but it is not in releases yet and there is no date. Until it lands, bug fixes keep shipping on the current renderer.

  • Fixing the crashes that keep coming back. A handful of them are

    reproducible and hit a lot of people, so they matter more than anything new.

  • Real Toy Pad auto-detect. Plug a real portal in and the game finds it

    and switches over by itself, without changing settings by hand.

  • Settings inside the game. The game's own options menu gets the port's

    settings (graphics, frame rate, Toy Pad, updates), so F4 is no longer the only way in.

  • Switching language while playing, without a restart.
  • A launcher before the first start, like the PC ports of Sony games:

    pick resolution, graphics quality, controller and language, check the game files, then play.

  • UI fixes, and layouts for other gamepads. Right now the button prompts

    assume an Xbox pad. PlayStation, Switch and generic controllers should show their own.

  • Updating the Discord Rich Presence so it shows more than a static line.

knowledge, and that is not enough for what is left. If you know graphics work, profiling, or Xbox 360 internals, and you actually care about this game running well, the optimisation work is wide open and I would genuinely welcome the help. Come say hello in the Discord or open an issue.

What "recompiled" means here

There is no emulator running underneath, and that is the point.

The Xbox 360 executable is PowerPC code. A tool translates it to C++ once, ahead of time, and a normal compiler turns that into a native x86-64 Windows program. Your CPU runs real x86 instructions. Nothing is interpreted at runtime.

What could not simply be translated is everything the game asked the console for:

PartHow it works here
Game code (CPU)Statically recompiled to native x86-64. No emulation.
GraphicsThe Xbox 360 GPU command stream is translated at runtime to Direct3D 12. Inherited from emulator work, and where most visual bugs still are.
Kernel, saves, achievements, DLCReimplemented as host functions. Saves are real files.
Audio, input, windowingNative. Any XInput controller, plus keyboard and mouse.
Toy PadA companion app over localhost, or a real portal over USB.

The runtime providing all of that is the ReXGlue SDK, which derives from xenia. So: the CPU side is a port, the graphics side still stands on emulator research. Saying that plainly is more useful than overselling it.

The SDK needed changes to run this game, and they are not in this repository. They are in a fork — NeverCookFirst/rexglue-sdk, branch toypad-ui — along with the Toy Pad work, the input handling and several crash fixes. Every release is built from that branch, so that is the SDK to use if you want to reproduce one.

Because there is no interpreter tax, it can run at 60 FPS and use modern upscaling (FSR 1 and CAS) and higher internal resolutions.

Tested on, and size

Everything was developed and tested on one machine: Ryzen 7 5700X3D, RTX 4060, 32 GB RAM, Windows 11, 1080p. A mid range desktop, not a high end one.

That is the only machine this has been properly tested on, so I cannot promise stable performance on any device, including that one. This is a public beta.

As for now, game is playable on Steam Deck through Proton, native port is not coming soon.

2009, and newer) and a Direct3D 12 GPU at feature level 11_0.

**Why the CPU floor changed in 0.1.30**

Up to 0.1.29 the game executable was built with -march=x86-64-v3 (AVX2, BMI2, FMA), so on any CPU older than Haswell / Zen 1 it closed at startup without an error. From 0.1.30 everything - the game, the recompiled code and the runtime libraries - is built for x86-64-v2, which only needs SSE4.2 and POPCNT. The game is limited by the GPU far more than the CPU, so this was not worth locking people out over.

To build for a newer baseline yourself, pass -DLEGODIMENSIONS_X86_BASELINE=x86-64-v3 (and the same to the SDK as -DREXGLUE_X86_BASELINE) when configuring; see rexlego/CMakeLists.txt.

hardware should manage, the game is probably running on your integrated graphics. With the GPU left on auto-select, the driver hands it the integrated chip instead of your dedicated card. Fix it in Nvidia Control Panel -> Manage 3D settings -> Program Settings: add legodimensions.exe and set Preferred graphics processor to High-performance NVIDIA processor. On AMD the same setting is AMD Software

Thanks to the players who worked this one out and reported it!

InstalledSize
Base game plus Title Update 23about 9 GB
All 30 DLC packagesabout 15 GB more
Everythingabout 24 GB

Reporting a bug

Open an issue. The template asks for the few things that actually help: game.log, your frame rate target, and your GPU. Since 0.1.17 a crash writes which function it died in and who called it into the log, so the log alone is usually enough.


Thanks

  • Unleashed Recompiled, first

    and above all. This project exists because of how much I loved what they did. Seeing a console game turned into a real native PC build is what made me ask whether LEGO Dimensions could be next.

  • ReXGlue, right after them. It is

    the toolkit that does the actual recompiling and provides the runtime this game sits on. Without it there would have been nothing to try in the first place.

  • The LEGO Dimensions Discord, for

    years of accumulated knowledge about this game and for encouraging every one of these experiments instead of dismissing them.

  • harrysof, for the

    LEGO Toypad app and the Toy Pad protocol work everything portal related here builds on.

  • xenia, whose research into

    the Xbox 360 GPU makes the graphics side possible at all.

  • connorh315, for

    BrickVault and for answering a pile of format questions in detail. The DFLT decompressor that lets our tools read the game's compressed archives is his work, used with his permission, and his notes on the PS4 build settled in one afternoon a question we had been circling for weeks.

  • Everyone who tested a broken build or said it was a good idea before it

    obviously was one.

Related repositories

RepositoryWhat it is
rexglue-sdk (branch toypad-ui)The runtime fork the releases are built from
DimensionsModLoaderMod manager that injects files into the game's DAT archives
DimensionsSaveConverterConverts saves between console versions
Xenia-Seamless-Toypad-Buildxenia fork with a built in emulated Toy Pad
RPCS3-Seamless-Toypad-BuildThe same idea for the PS3 version
shadPS4-Seamless-Toypad-BridgeToy Pad bridge for the PS4 version

Antivirus

The installer is one big unsigned executable that unpacks a payload into your game folder, which is exactly the shape heuristic scanners and SmartScreen do not like. It comes back clean: VirusTotal scan.

Windows will still put up "Windows protected your PC" the first time you run it. That is normal for anything unsigned. Click More info, then Run anyway.

Licence and the legal bit

The code here is MIT licensed, see LICENSE. That covers what I wrote. It does not cover LEGO Dimensions or any of its data. Bring your own game.

Not affiliated with or endorsed by LEGO, TT Games or Warner Bros.

There are no donations. Nothing here is sold, and nobody should be asking you for money for it.

Built by NeverCookFirst, logo by c0mpadre.

From the project's repository, fetched . Images load from GitHub.

Releases

Feed
  1. v0.1.32 0.1.32 Pre-release 39
    Release notes

    What's new in 0.1.32

    • Vulkan works again. Choosing F4 → Graphics → Graphics API → Vulkan (unstable) made the game fail to start with "Failed to load GPU plugin 'xenos'". The graphics plugin was missing its Vulkan part; it's back.
    • A bad Graphics API value no longer blocks startup. If the config holds a value the game doesn't know, it now falls back to the default instead of refusing to start.

    Found any problem? Please report it in Issues right away and attach your game.log.

  2. v0.1.31 Hotfix 0.1.31 Pre-release 1.1k
    Release notes

    What's new in 0.1.31

    Hotfix: 0.1.30 didn't start for some players and showed "amd_fidelityfx_dx12.dll was not found". That file is now included. Everything from 0.1.30 is in here too (level-end crash fix, smoother fullscreen, older CPUs, FSR 1/CAS back).

    Found any problem? Please report it in Issues right away and attach your game.log.

  3. v0.1.30 0.1.30 Pre-release 137
    Release notes

    What's new in 0.1.30

    • No more crash right after finishing a level. Finishing some levels (for example Prime Time or Back to the Future!) crashed the game the moment the achievement unlocked. That's fixed.
    • Fullscreen is much smoother. Fullscreen could run at half speed for the whole session, especially on portal/vortex loading screens, until you pressed Alt+Enter twice. The game now paces itself properly from the first frame, and it no longer stalls waiting on the monitor.
    • Runs on older CPUs. Before, the game needed an AVX2 CPU (Intel Haswell / AMD Zen or newer) and silently closed on anything older. Now any 64-bit CPU from about 2009 onward works. Still needs to be tested out!
    • AMD FSR 1 and CAS are back in F4 → Graphics → Upscaling filter.
    • Crash dumps save properly. If the game crashes, a crash-*.dmp appears next to the exe. Zip it and attach it with your game.log.
    • Updating is easier. Click Yes on the "Update available" popup and the game closes by itself, so the updater can install right away.

    Update from inside the game (F4 → Updates), or run rexupdate.exe.

    Found any problem? Please report it in Issues right away and attach your game.log.

  4. v0.1.29 0.1.29 (Unstable) Pre-release 3.4k
    Release notes

    What's new in 0.1.29

    • Crash dumps actually work now. Every crash-*.dmp so far was 0 KB, so it had nothing in it. Dumps are smaller now and have real data. If the game crashes, zip the .dmp from the game folder and attach it with your game.log.
    • Freezes leave a dump too. When the game hangs (the music keeps playing but the picture stops), it writes hang-*.dmp next to the exe by itself. Please attach it. The log now also shows both threads in the lock, not just one.
    • New console command dump. If the game is acting strange and doesn't write anything, open the console (` key), type dump, press Enter and attach the dump-*.dmp it writes.

    Update from inside the game (F4 → Updates), or run rexupdate.exe.

    Found any problem? Please report it in Issues right away and attach your game.log.

  5. v0.1.28 0.1.28 (Unstable) Pre-release 774
    Release notes
    • The installer now checks that your game dump is complete. A dump whose copy stopped part way still starts, but shows a black world. The installer now lists any disc file that is missing or too short and tells you to dump again.
    • The installer and updater keep a log. If something goes wrong, the error message tells you where setup.log / updater.log is. Please attach it to your report. A finished install also gets a copy next to the game.
    • Mods you deleted are really gone. The config could keep mods whose folders no longer exist, and their changes stayed baked into the game files, which crashed some levels. Every launch now checks the list against the mods folder and rebuilds the game files from the mods that are really there.
    • The game starts in a window again. Installs from before 0.1.21 kept fullscreen on, on the main monitor. This update switches it off once. Alt+Enter or F4 → Fullscreen turns it back on, and F4 → Monitor picks the screen.
    • Toy Pad app path fixed. A path pasted with quotes (Explorer's "Copy as path") now works, a folder works as well as the exe, and a wrong path falls back to tools\LegoToypad. F4 now shows the path the game actually uses.

    Update from inside the game (F4 → Updates), or run rexupdate.exe.

    Found any problem? Please report it in Issues right away and attach your game.log.

  6. v0.1.27 0.1.27 (Unstable) Pre-release 91
    Release notes
    • Fixed broken geometry in the Simpsons world (and elsewhere). The background GPU copy added in 0.1.26 could hand the game old data, which tore the level geometry into long spikes, for example when looking at Springfield. It is switched off for everyone. Rendering is back to the 0.1.25 behaviour, so stutters are back at their 0.1.25 level. We will bring the faster copy back once it is fixed properly.
    • The AMD black-world fix and the other changes from 0.1.26 stay.

    Update from inside the game (F4 → Updates), or run rexupdate.exe.

    Found any problem? Please report it in Issues right away and attach your game.log.

  7. v0.1.26 0.1.26 (Unstable) Pre-release 55
    Release notes
    • Far fewer stutters, on every graphics card. Some of the game's effects are computed on the GPU and then copied back for the game to read. Until now the game stopped and waited for the GPU after every one of them, often about 60 times a frame. Now the copy happens in the background, and the game only waits if it reads the data before the GPU has finished it. In our tests the number of slow frames dropped by about ten times, and cutscenes and level loads should be much smoother. If you see new glitches, you can switch back to the old behaviour by adding readback_memexport_on_demand = false to legodimensions.toml. Please tell us if you had to.
    • AMD: possible fix for a black world. Some textures were sampled with filtering their format doesn't support. NVIDIA tolerates this, but AMD cards can return black. If the world was black for you on an AMD card while cutscenes rendered fine, please try this version and let us know.
    • GPU registers now start with the same values as on a real Xbox 360.
    • Russian translation mod: text fixes.

    Update from inside the game (F4 → Updates), or run rexupdate.exe.

    Found any problem? Please report it in Issues right away and attach your game.log.

  8. v0.1.25 0.1.25 (Unstable) Pre-release 431
    Release notes
    • Sharp text: anti-aliasing is now off by default. FXAA runs over the whole finished frame, menus and captions included, and the strong variant we set in 0.1.21 made text noticeably blurry. Updating keeps your own choice; if you never touched it, it switches to Off. You can still turn it back on in F4 → Graphics → Anti-aliasing.
    • Country setting in F4 → Language. Some translations share one language and are told apart by the country: pick Spain or Mexico (Latin American Spanish) for Spanish, France or Canada (Canadian French) for French. Takes effect on the next launch.
    • Russian is gone from the F4 language list: the game never shipped it, so choosing it did nothing. Russian is the Lang_Russian mod (F8 → Mods).

    Update from inside the game (F4 → Updates), or run DimensionsRecompiled-Setup.exe.

    Found any problem? Please report it in Issues right away and attach your game.log.

  9. v0.1.24 0.1.24 (Unstable) Pre-release 237
    Release notes
    • Language page in F4. Pick the game language (English, German, French, Spanish, Italian, Portuguese, Polish, Swedish, Norwegian, Dutch, Japanese, Korean). It sets the text and voices and takes effect on the next launch. A language the game was not shipped with falls back to English.
    • Mouse cursor hidden during play. It is shown only while a menu is open: F-key overlays, Quit Game, Credits and host prompts.
    • Fix for exploding geometry on late game lvl's (0.1.20-0.1.23). Batched memexport readback could copy stale GPU data over memory the game had already rewritten. Batching is now off (forced in your config on update), and the batch path now keeps the game's own writes.
    • The upscaler list shows only AMD FSR 1. FSR 2 and FSR 3 were options that did nothing.

    Update from inside the game (F4 → Updates), or run rexupdate.exe.

    Found any problem? Please report it in Issues right away and attach your game.log.

  10. v0.1.23 Hotfix 0.1.23 (Unstable) Pre-release 458
    Release notes
    • Every cutscene can be skipped, even the first ones from a new save. This works as if the N0CUT5 code were always entered. It is on by default; turn it off in F4 -> Mods and fixes -> Skippable cutscenes.
    • Fern and the Mystery Dimension portal fix moved to F4. They are now switches under F4 -> Mods and fixes instead of locked entries in the F8 mod list. Fern can be turned off; that takes effect on the next launch. F8 now lists only regular mods.

    Found any problem? Please report it in Issues right away and attach your game.log.

  11. v0.1.22 Hotfix 0.1.22 (Unstable) Pre-release 146
    Release notes

    Hotfix.

    • No more crash after closing Credits or Quit Game. Opening either one froze the game underneath while the menu read the controller, and on some machines the game could not recover once it was unfrozen. The game now keeps running while they are open; it just does not receive your button presses.
    • All Worlds now covers every character. The mod only looked at regular minifigures, so characters stored elsewhere, such as Jake and the Powerpuff Girls, could not enter every world. It now covers 134 characters instead of 101. If you have All Worlds enabled, the update re-applies it for you.

    Found any problem? Please report it in Issues right away and attach your game.log.

  12. v0.1.21 0.1.21 (Unstable) Pre-release 31
    Release notes
    • Credits and Quit Game in the main menu. The two empty circles on the left of the main menu now hold Credits and Quit Game. Quit Game asks before it closes the game. Turn both off in F4 -> Interface.
    • The shader cache now keeps what it compiles. Since the first session, the pipeline cache never grew on any machine, so every play-through recompiled the same pipelines and stuttered in the same places. It now grows as you play and loads back on the next launch. Thanks to SpiderNic96 for the Steam Deck report that led to this.
    • "Compiling shaders, please wait... N / M" appears at the bottom of the screen while new shaders compile, so a short hitch is not mistaken for a hang. It can be turned off in F4 -> Interface.
    • Less CPU use. The GPU thread no longer keeps a whole CPU core busy while it waits. This matters most on 4-core machines and handhelds.
    • Graphics API can be switched in F4. Vulkan is marked unstable and needs a restart.
    • Updated Russian translation.
    • New default settings (kept if you already changed them yourself): windowed mode (it runs faster than exclusive fullscreen), FXAA extreme, FSR quality mode, no depth of field, a bigger texture cache, and the LEGO Toypad app starts with the game when it was installed.
    • Freeze reports now also say what the emulated GPU was doing at the time, and the bug report form accepts a crash dump.

    Found any problem? Please report it in Issues right away and attach your game.log.

  13. v0.1.20 Hotfix 0.1.20 (Unstable) Pre-release 851
    Release notes

    Hotfix.

    • Far fewer stutters in busy scenes. Effects that write straight to memory (memexport, used by the game's lighting) made the emulator stop and wait for the GPU after every such draw - hundreds to thousands of times per frame. These are now batched and synced only when the game can actually look at the results.
      • Per minute of play: big hitches (frames over 100 ms) 12.7 → 2.6, stutters (over 50 ms) 50 → 4.4.
    • New setting slow_frame_log_ms (off by default): logs a breakdown of every frame slower than the given milliseconds. Useful for performance reports.

    Found any problem? Please report it in Issues right away and attach your game.log.

  14. v0.1.19 Hotfix 0.1.19 Pre-release 338
    Release notes

    Hotfix.

    • Saving works with more than one controller connected. If a second (often virtual — Steam Input, DS4Windows) controller was plugged in, the game could say "You do not have an active gamer profile" and refuse to save. Every controller slot now has the profile.
    • F4 → "Reset all to defaults" no longer breaks the game. It used to wipe the compatibility settings the installer writes, and the game crashed on the next start. Reset now restores the settings the installer set up and keeps all paths.
      • If your game already crashes after a reset: run this installer over the same folder (saves and DLC are kept).
  15. v0.1.18 0.1.18 Pre-release 143
    Release notes

    Fern is back

    Finn can swap into Fern again, with his own model, animations and items. The Adventure Time DLC shipped without Fern's character cache, so the swap used to hang forever in the portal vortex. The missing cache now ships with the game (PATCH3) and is always on - you will see it greyed out in the F8 mod menu.

    Modding tools (optional)

    The installer has a new Modding tools checkbox, off by default. It installs the latest releases of connorh315's tools into tools\ModdingTools: BrickVault, Flux, AbilityDefEditor, SoundEventEditor, Hologram, Diorama, CBXDecoder, DATPacker, DATManager. Bundled with his permission - huge thanks to him.

    The modding guide was rewritten: docs/how-to-mod.md - building your own PATCH4+ archives (no size limits), tracing what the game looks for, and the Fern recipe as a worked example.

    Fixes

    • F4 Reset all to defaults no longer wipes the game/data paths from the config;
    • The F4 window opens a little smaller;
    • F8 built-in entries no longer show config key names.
  16. v0.1.17 Hotfix 0.1.17 Pre-release 215
    Release notes

    Hotfix pre-release on top of 0.1.16. Nothing here changes the game data; it is all runtime and UI.

    Crash logs that name the culprit

    A crash used to leave a host address that meant nothing under ASLR. game.log now records the module and offset, the guest thread it died on, and the chain of game functions that led there - so a log alone is usually enough to find the bug. If you have been hitting crashes or the "stuck lock" freeze in the LEGO Movie world, please update and send the new log.

    Settings you can read

    F4 has been rebuilt for players: Display, Performance, Graphics, Audio, Controls, Keyboard bindings, Shortcuts, Toy Pad, Mods and fixes, Online. Plain names, a tooltip on every line, drop-downs instead of magic numbers, and a wider window so nothing overlaps. Everything technical is still there under Advanced by its raw name.

    Depth of field off

    Performance -> Depth of field blur. The game never had a switch for it, so the recomp drops the render pass itself. Sharper picture, slightly less GPU work. (For the curious: ps_frame and ps_skip in the console let you find and drop any other full-screen pass the same way.)

    Russian translation

    The installer now offers the translation mod by koctr113 in place of the two older language mods. If you had the old ones enabled, pick the new one in the mod menu (F8).

    Full install: DimensionsRecompiled-Setup.exe. Existing installs get update-0.1.17.rxp through the in-game updater.

  17. v0.1.16 0.1.16 Pre-release 45
    Release notes

    Xbox One Toy Pad Support

    The Xbox One Toy Pad (0E6F:0141, "LEGO(R) DIMENSIONS(TM)") now works over USB, alongside the Wii U / PS3 / PS4 and Xbox 360 pads.

    It is a different one from the other pads: it speaks Xbox One GIP, so every LEGO frame travels inside a GIP packet and the pad only opens its gateway after a GIP handshake. The game now does all of that for you - swap the driver once with Zadig (libusb-win32, check the USB ID 0E6F 0141 - Windows lists it under the same name as the Xbox 360 pad), untick toypad_emulation under F4 > Input, restart.

    If the pad stays silent after a driver swap or a previous session, unplug it and plug it back in: it goes mute when poked the wrong way and only a power cycle wakes it.

    Protocol work and testing on real hardware by my friend Amirust. Thank you, brother!

    Also in this build

    • modcli: adding a new file to a .CC40TAD archive (DLC packages) now keeps the archive valid - the header size field is updated and the entry is inserted in CRC order, which is what the game's lookup needs. Previous builds could make a DLC report as "not installed" after such a mod.
  18. v0.1.15 0.1.15 Pre-release 456
    Release notes

    Vertical sync is locked off

    The vsync setting is now greyed out in F4, and an update turns it off for anyone who had turned it on.

    After receiving many reports that this feature is not working, I tried to look into it. For now, it seems that Vsync is reducing the FPS so much and so suddenly. Unfortunately, I don't have much time to investigate it further at the moment. Sorry!

    Add DLC without reinstalling the whole game

    Bought a pack after installing?
    Run the installer again and pick "Add DLC to an install I already have" on the first screen. It asks for two things - the folder with your packages and the folder you installed into - and writes only the DLC. Your save, settings, mods and the game files are left exactly as they are.

    Settings: reset to defaults

    F4 has a Reset all to defaults button next to Save, behind a confirmation.
    It also writes the config straight away, because a setting that only takes effect on the next start is exactly the kind that leaves a game unstartable.

    Building it yourself got fixed

    Someone built the whole project from a clean clone on a CPU without AVX2 and wrote up every place the guide was wrong. All of it is fixed:

    • The SDK and the two sibling repositories are git submodules, so one

      git clone --recursive replaces the steps that sent you looking for them.

    • LEGODIMENSIONS_X86_BASELINE and REXGLUE_X86_BASELINE make the instruction

      set a supported setting rather than a source edit, for older CPUs.

    • Configuring the SDK without --preset no longer fails to compile.
    • README-dev.md now says to put Default.xexp next to Default.xex before

      generating. The loader applies the update itself from there - xextool was
      never needed, the guide just never said where the file goes.

    • The release script finds the files it needs instead of demanding they be

      copied into place by hand, and says what to do about anything missing.

    Thanks to Kimm from Discord for that report - it was detailed enough to act on line by line!

  19. v0.1.14 0.1.14 Pre-release 205
    Release notes

    Pre-release. Tested on one machine, so treat it as a test build.

    Xbox 360 Toy Pad Support

    Every retail Toy Pad is now supported except Xbox One - Wii U, PlayStation 3, PlayStation 4 and, new here, Xbox 360.

    The 360 pad was never going to be found before: it is not the same USB device as the others. PDP shipped the pad under two identities, and we only knew one of them.

    Shows up asUSB IDPad
    LEGO READER V2.100E6F 0241Wii U / PS3 / PS4
    LEGO(R) DIMENSIONS(TM)24C6 FA01Xbox 360

    It also needed the command frames sent in a different shape — the 360 pad speaks the wrapped Xbox frame that a PC pad does not, and we were unwrapping it for everybody.

    Installing the driver - do this first

    If Device Manager shows your 360 pad as "Driver is unavailable", nothing is broken. Windows ships no driver for that pad at all. You install one yourself, once, and it takes about a minute:

    1. Download Zadig and run it.
    2. Plug the Toy Pad in.
    3. In Zadig, tick Options → List All Devices.
    4. Pick your pad in the drop-down and check the USB ID against the table above before you touch anything — pointing Zadig at the wrong device will take that device away from Windows.
    5. Choose libusb-win32 as the driver, then press Install Driver.

    On a pad Windows already had a driver for, that button reads Replace Driver instead. Same step.

    1. In game press F4, open Input, untick toypad_emulation, and restart the game.

    The pad lights up a few seconds after the game starts. Put a figure on it and it appears in game, exactly like on a console.

    To give the pad back to Windows later — for a real console, or other software — uninstall that driver in Device Manager.

    If the pad stays dark

    There is a new setting, toypad_passthrough_frame (F4 → Input). Leave it on auto; it picks the right frame shape from the pad it found. If some pad revision disagrees, keep and strip force it either way, and game.log says which one is in use.

    Updating

    Either file works. update-0.1.14.rxp is the small one and applies to any install from 0.1.0 onward; DimensionsRecompiled-Setup.exe is the full installer and repairs an install without touching saves.

    The README that came with your install is written at install time, so an in-place update leaves the old one. Everything new is above.

  20. v0.1.13 0.1.13 Pre-release 103
    Release notes

    Pre-release. Tested on one machine, so treat it as a test build.

    A cheat menu, on Del

    A memory scanner and value freezer built into the game — the job people use Cheat Engine for, without needing Cheat Engine.

    Pick a value type, type the number you can see on screen, First scan, then change it in game and Next scan = until a few addresses are left. Click one and Write once or Freeze it. If the number is not shown anywhere, start from Unknown value and narrow down with Increased / Decreased / Changed / Unchanged.

    Save as cheat stores an address under a name beside the game and re-applies it on every launch, only while its tick box is on.

    Scans run on their own thread, so the game keeps moving while they work.

    If you would rather use Cheat Engine itself, it works, but two settings are not optional: turn on MEM_MAPPED scanning, and scan as big-endian. docs/cheat-engine.md explains both, tools/cheatengine has ready-made big-endian types, and the new membase console command prints where guest memory landed for that run.

    BACK is no longer on Backspace

    It sits on = now. Backspace is where people reach for a delete key, and it kept sending BACK to the game by accident. If you rebound it yourself, your binding is kept.

    Smaller things

    • The updater closes itself once an update is applied, after a five-second countdown that any click cancels. This one takes effect from the next update: the pack you are about to install is applied by the updater you already have.
    • Closing the game gives it three seconds to shut down cleanly instead of eight before the process is taken out.

    Updating

    Either file works. update-0.1.13.rxp is the small one and applies to any install from 0.1.0 onward; DimensionsRecompiled-Setup.exe is the full installer and repairs an install without touching saves.

    The README that came with your install is written at install time, so an in-place update leaves the old one. Everything new is above.

  21. v0.1.12 Hotfix 0.1.12 Pre-release 251
    Release notes

    Hotfix. One thing is fixed, and it only concerns people who make or install mods. If you are on 0.1.11 and everything works, there is nothing here for you.

    A mod can reach the disc archives now

    Most of what is worth modding lives in the update archive, PATCH.DAT. Some things do not: the on-screen button prompts, for one, sit in GAME.DAT under GUI/FONT. A mod that named one of those never had a chance - the tool that injects the files was told where the update folder was and where the DLC packages were, and nothing else, so it could not find GAME.DAT, gave up on the whole mod, and left F4 -> Mods saying modcli failed, see the log. Mods touching PATCH worked, which made it look like the mod was at fault.

    The game folder is searched too now. datfiles/GAME/... finds GAME.DAT, and so do GAME0..GAME4 and INSTALL0_*. Existing mods need no changes.

    Reach for the disc copy only for something the update does not carry. If a file exists in both, the update's copy wins, so modding the disc copy of it changes nothing, PATCH is still where almost everything belongs.

    DLC mods survive an install and an update

    The installer applies mods at the end of a Russian install, and the updater re-applies whatever you had enabled after it patches. Both drive the same tool the F8 menu does, and neither told it where the DLC packages were. So a mod targeting a DLC archive, Super Sonic Infinite lives in DLC16, failed the install outright, and was quietly dropped on every update. Both pass the right folders now.

    Also

    • docs/how-to-mod.md now says which archive to target and why the update usually wins.

Works for me

Did it work on your PC? A quick report tells other players which versions are safe to try.

Sign in to add a report

Discussion

No posts yet. Ask a question, share your setup or post a clip.

Sign in to post