Skip to content

Lantern Engine 0.9.41

Latest

Choose a tag to compare

@Awakenchan Awakenchan released this 10 Nov 04:10

A release on top of 0.9.40: new movement keys for keyboard and mouse, Steam Deck and Steam Controller trackpads, seamless co-op fixes for guests, frame generation that adds frames instead of cutting the game's rate, and fixes for crashes and freezes players reported on 0.9.40.

Controls

  • Jump on its own key. A new switch on the Controls page. With it on, the Jump key (left stick click, L3; Left Ctrl by default) jumps at once, sprinting or not, and the dodge button always dodges. With it off, a second press of the dodge button while sprinting jumps, as on PS4. It needs the game's own 1.09 action script: with a mod that replaces c0000.hks, the switch does nothing and the log says so.
  • Dodge key. A new row that dodges with one press, also while the sprint key is held. You roll and go back to sprinting.
  • Backstep key. A new row that steps back with one press, whatever direction you're moving in.
  • Sprint key. A new row that sprints as soon as you hold it. The game's own button waits 0.4 s before a sprint starts, and letting go of it early dodges. The Sprint key skips the wait and never dodges.
  • Hold or Toggle per key. Each key row has a Hold / Toggle button. On Toggle, one press turns the action on and the next press turns it off, for example to keep sprinting or walking without holding the key. Toggled keys pause while a menu is open. It applies at the next start of the game.
  • The old "Dodge / sprint" row is unchanged, for anyone who wants the PS4 behaviour on one key.
  • The new rows start unbound and take any key, mouse button or wheel direction, like the other rows.
  • Reset all now restores the built-in profile you have selected as it shipped. Before, it always went back to the "PC default" layout.

Steam Deck and Steam Controller

  • Both trackpads work. By default the right trackpad turns the camera while your finger moves, like a mouse, and the left trackpad is the left half of the PS4 touch surface. Controls › Left trackpad / Right trackpad set each one to camera, movement, PS4 touch surface or off, and Trackpad camera speed sets how fast the camera turns.
  • Trackpad clicks and directions can be bound. The left trackpad click is the touchpad's left half and the right click its right half. Touching a pad, or its top, bottom, left or right part, can be bound to any action in the actions table.
  • Back buttons (L4, L5, R4, R5) can be bound as Extra button 1 to 4, as on other controllers.
  • Gyro camera (off by default): turn the camera by moving the controller. It works on any controller with a gyro, DualSense, DualShock 4 and Switch Pro included, with its own speed slider.
  • The engine now asks SDL for its own Steam Controller, Steam Deck and Steam Controller (Hori) drivers. BB_STEAM_HIDAPI=0 leaves that to SDL's defaults.
  • This is not Valve's Steam Input API, which needs a Steam release of the game. If Steam itself is running and remaps the controller, the game sees what Steam hands it.

Fixes

  • Crash when using a lamp, and a crash at start with a damaged game copy. When the game raises an internal error, its own error handling asks the system which module a piece of code belongs to. Lantern had no answer for that call and stopped with "unsupported PS4 import sceKernelGetModuleInfoFromAddr". It answers now, so the game's own handling runs. With a damaged or incomplete game copy you now get the game's real error in the log instead.
  • Crashes while playing (code 139), often after dying or on a loading screen. When video memory runs short, the engine frees textures the GPU drew and first copies their pixels back into the game's memory. On the first and last memory page of such a texture it could no longer see the game's own writes, and after the game had freed that texture its memory allocator kept its bookkeeping there. The copy put pixels over it, and the game crashed inside its allocator a moment later. Those pages are now left as the game has them. Two 0.9.40 logs show the copy a few lines before the crash. BB_STORE_UNWATCHED=1 brings back the old copy.
  • Seamless co-op: a guest's badges and workshop tools no longer disappear. The game keeps key items in their own list and gives a summoned guest an empty temporary one, which it throws away on the way home. So a badge picked up in the host's world was gone in the Hunter's Dream, and its shop items never showed. In rooms a guest now keeps its own key item list. Key items lost before this update don't come back by themselves, because the chest already counts as opened in the save. BB_PERSONAL_WORLD=0 turns the own-world changes off.
  • Seamless co-op: window NPCs and other event gifts reach a guest. The gift flags are each hunter's own now, so a guest gets the item in the host's world and doesn't get it a second time at home.
  • Seamless co-op: doors, shortcuts, lamps and story progress a guest sees happen in the host's world are kept in the guest's own save, so a door opened together is open at home too.
  • Seamless co-op: Insight and echoes for guests. A guest gets the Insight the host's world gives for a boss instead of the cooperator's 1, gets a kill's full blood echoes, and nobody gets Insight when another hunter dies or leaves.
  • Seamless co-op: no more taking turns getting up in a boss fight. While the boss is alive a fallen hunter stays down. When the whole party is down, everyone goes back to the lamp together. After the boss dies, and outside boss fights, a fallen hunter gets up as before.
  • Chalice dungeons: "image.cpp:321 GetBarriers: Assertion Failed". The engine stopped when the game asked for a mip level or layer an image doesn't have. That part is now left out and the game goes on.
  • 4K menus: the build stopping near 90% with an error. When the upscaler fails, usually because video memory ran out on the large textures, the launcher now tries the remaining textures again in small tiles, one at a time. If some still fail, the message includes the upscaler's own error.
  • Intel integrated graphics: crash right after loading in since 0.9.40. 0.9.40 made AMD's FSR SDK the default upscaler, and Intel's driver for integrated graphics crashes while the SDK prepares itself. On Intel integrated graphics the engine's own FSR 3.1 is used again. BB_FSR_SDK_INTEL=1 uses the SDK anyway.
  • Frame generation cut the game's frame rate instead of adding to it. With the Uncapped frame rate the game was held at the refresh rate divided by the multiplier: 40 FPS at 120 Hz with 3x, 40 FPS at 240 Hz with 6x. The game now runs at its own rate and frame generation adds its frames on top. The old behaviour is the switch Graphics › Frame generation: even pacing (Uncapped), now off by default; a setting saved by an older version isn't carried over.
  • Frame generation: the FPS counter always said "2x" and showed the game's rate. It now shows the frames that reach the screen, the game's own rate, and the measured multiplier.
  • A freeze a few seconds or minutes into the game with the GPU no longer answering. Two logs, an RX 6800 and an RTX 5070 Ti, stop at the same place with the PC memory model on. When the engine sees the GPU stop answering with the model on, the next start leaves the model off on that PC and says so in the log. Deleting user\pc-model-hung tries it again.
  • Linux with AMD cards: "device lost" after some particle effects. Two of the game's particle passes can ask the GPU for billions of work groups when a count is read wrong. The guard added in 0.9.37 compared against the driver's own limit, which is over four billion on AMD, so it never applied. A count over 65,535 now runs no groups for that pass. The game's largest real count in our runs is 285. BB_INDIRECT_CLAMP=0 runs them as the game wrote them.
  • Broken lighting, missing fire or a frame rate that falls after a few minutes on AMD and Intel cards. Several players fixed these by turning off "PC memory model". It now stays off on AMD and Intel cards on Windows, and on Linux. NVIDIA cards keep it. BB_PC_MODEL_ANY_GPU=1 in the extra environment turns it back on if it worked well for you.
  • FSR 4.1.1 (fsr4vk) can be chosen on AMD cards again on Windows. 0.9.40 hid it there, and a player with an RX 6700 XT measured it faster than the default FSR on that card. It stays marked experimental and the default is unchanged.
  • An area without textures, or a loading screen that never ends. One report of this was a game copy missing a map archive that a complete 1.09 copy has (map/m32/m32_0002.tpfbdt). The setup guide now checks the game's map archives against the list of a complete copy, reads each archive's header, and names files that are missing, cut short or empty. The engine also names an archive whose header is there and whose data file isn't.
  • Save editor: when the saves can't be read, the page now says why instead of "No hunters yet".

Engine switches

  • Camera follows the frame time (off by default, under Engine switches › Input). Above 30 FPS the game's camera turns and eases once per frame, so with a controller it moves faster and less evenly the higher the frame rate. This switch makes those steps follow the frame time. It was built during the 0.9.39 betas and turned off again in beta 29; it is offered as a switch for players who reported the controller camera above 60 FPS.
  • Seamless co-op: spectate and party wipe (off by default, under Engine switches › Online, experimental). A hunter who dies in a boss fight watches the others through a spectator camera, and a wipe brings the party back at the lamp without a loading screen. The camera and the respawn without a load have never run, which is why this is a switch. Everyone in the room should use the same setting.

Graphics

  • 2K menu detail. A new switch next to the 4K menus. The upscaled menus are drawn at half their built size, which takes a quarter of the video memory and stays as sharp as a 1440p or smaller screen can show. Turn it on before Build and the built textures take a quarter of the disk space too.

Not tested

  • Played on an RTX 5060 with a Ryzen 5 5600 on Windows only. AMD, Intel and older NVIDIA cards haven't been tried, and the Linux build hasn't been played on a real GPU.
  • The Vulkan validation of every cached pipeline for five GPU families was done for 0.9.40 and not repeated: no game shader or pipeline changed since. The one new GPU program is the guard's small compute shader, which has its own test.
  • The Linux AMD "device lost" fix passes its own GPU test on our NVIDIA card. It hasn't run on an AMD card, and we don't yet know why those cards read a wrong count.
  • The fix for crashes after dying follows two players' logs and the game's allocator code. We couldn't reproduce the crash ourselves, so we can't yet say it is gone. The second log's crash is in a different place of the game and may have another cause.
  • None of the seamless co-op changes were played with two hunters: key items, event gifts, kept doors and progress, guest Insight and echoes, and the new boss-fight rules all come from the game's code and their own unit tests.
  • The chalice dungeon and 4K menu build fixes follow one report each. Neither failure was reproduced here.
  • The Intel integrated graphics fix follows one log (UHD Graphics, driver 101.5522). We have no Intel GPU to try it on. Arc cards keep the FSR SDK.
  • The lamp crash fix was checked against the game's code tables, not against a real crash: we couldn't reproduce the error that started it.
  • Turning the PC memory model off on AMD and Intel follows player reports. We have no AMD or Intel card to compare speed with it on and off.
  • The Steam Deck and Steam Controller support was written from SDL's driver sources. We have neither device, so trackpads, trackpad clicks, back buttons and the gyro camera haven't been tried on real hardware. The gyro's directions may need the invert switches.
  • Frame generation was played with DLSS at 3x on an RTX 5060 (184 FPS shown from 61 game FPS). FSR 3.1 frame generation and the other multipliers weren't tried.
  • The fallback that turns the PC memory model off after a GPU freeze has not run: we couldn't make a GPU freeze here.
  • The new keys were played with keyboard and mouse. Jump on its own key also changes L3 on a controller: it jumps there too.
  • The new launcher texts are translated for the short labels only. The longer descriptions are English for now.

Known issues

  • Missing walls or floors with large map mods: the log of one report shows the mod's map asking for model files that aren't in the mod or the game. That is on the mod's side.
  • Black screen at the Laurence cutscene (and one report at Ludwig): still open. Players got past it by pressing the skip button as soon as the cutscene starts.
  • Ultrawide: the image is still stretched for some players. Not looked at in this release.
  • Cainhurst: the noblewomen's skirts disappearing is still open.
  • Crashes at random places on an i9-14900KF, on 0.9.38 and 0.9.40 alike, each at a different address in the game's code: no pattern that points at the engine was found.
  • The controller camera above 60 FPS was reported without a log. The new switch may help; the default camera is unchanged.
  • Seamless co-op: a hunter whose connection stalls for 5 seconds counts as down, so a bad link can call a party wipe early in a boss fight. A guest who joined a host on an older version gets no boss Insight.
  • Freeze with the GPU no longer answering (RX 6800, RTX 5070 Ti): no engine fault was found. The model is off on AMD and Intel now, and on any PC after one such freeze. The first freeze on an NVIDIA card still happens once.
  • RX 470, loading screen stuck on a warp and an area without textures: that player's game copy is missing map/m32/m32_0002.tpfbdt. Copy the game again from the dump; the setup guide now names such files.
  • Arc B580, crash on the first loading screen: the game computed a negative size for one of its files and wrote to an empty buffer. That points to a damaged or incomplete game copy rather than the GPU, and the same crash was reported with another port. Open the setup guide on 0.9.41: it now names cut or missing game files. The PC memory model, which was in use in that log, is also off on Intel cards now.
  • The known issues of 0.9.40 still apply.