
lovely
Lovely is a runtime lua injector for LÖVE 2d
CHANGELOG
v0.7.1
What's Changed
- fix: sort patches initially by order, then by prio by @ethangreen-dev in https://github.com/ethangreen-dev/lovely-injector/pull/123
- fix: revert build toolchain to 1.77.2 by @ethangreen-dev in https://github.com/ethangreen-dev/lovely-injector/pull/124
Full Changelog: https://github.com/ethangreen-dev/lovely-injector/compare/v0.7.0...v0.7.1
v0.7.0
Contributors
A huge thanks goes out to the following contributors:
- @flakywanderer for improving log messages with patch metadata.
- @WilsontheWolf for fixing the logging of panics on Unix targets.
- @drgrib for improving the Steam Deck install guide.
- @vgskye for completing much of the work on the Lovely Linux target.
- @asquared31415 for updating the Linux PR.
- @Rick1029 for writing a guide on running Lovely and Love2D games natively on Linux.
Notable Changes
#103 Expanded patch targets
TL;DR: You can specify more patch targets.
Patches can now target other mods and even love2d itself. Since non-Balatro buffer names can be complex you should use --dump-all
and the corresponding .txt
file in dump/
to determine the name of your target.
[!IMPORTANT] Patching other mods can cause problems if done incorrectly - problems that can be impossible to debug even with a complete dump. Be careful with this tool, communicate your intent with other devs as needed, document what you've done, and remember to have fun!
#114 Strict patch application ordering
TL;DR: Pattern and regex order inconsistencies have been fixed.
Lovely patches have a strict order in which they are applied: module → copy → pattern → regex, however this was not the case in v0.6.0. This version (and all the ones preceding it) merged the pattern and regex patches together such that they were applied in the same step in the order that they were defined within the patch file. This has been resolved by separating and applying these patches sequentially.
#103 Improved debugging via --dump-all
TL;DR: Use
--dump-all
to dump everything.
Every encountered buffer can be dumped, not just the ones that have been patched. Alongside each is a text file which contains the internal name of the buffer - use this name in the target
field of patches.
#121 Hacky patch directory interpolation
TL;DR: Use
{{lovely_hack::patch_dir}}
in your payloads to access the patch's mod directory.
This variable will be replaced with the parent directory of the patch (either ../lovely.toml
or ../../lovely/patch.toml
, for example. It's a hacky and temporary solution that WILL be replaced at some point in the future, but it'll work fine for now.
#66 + #102 Linux support
TL;DR: Native Linux support but you must build it yourself (for now).
Follow the guide written by @Rick1029: https://github.com/Rick1029/lovely-injector/
What's Changed
- Include patch file origin paths in patch logging messages by @flakywanderer in https://github.com/ethangreen-dev/lovely-injector/pull/89
- feat: add {{lovely:mod_dir}} interpolation by @ethangreen-dev in https://github.com/ethangreen-dev/lovely-injector/pull/95
- fix: replace flawed tolstring impl with tostring lua call by @ethangreen-dev in https://github.com/ethangreen-dev/lovely-injector/pull/96
- updated version of #66 by @asquared31415 in https://github.com/ethangreen-dev/lovely-injector/pull/102
- Add extended patch target support by @ethangreen-dev in https://github.com/ethangreen-dev/lovely-injector/pull/103
- Add a proper window title, fix --disable-mods arg (Windows) by @ethangreen-dev in https://github.com/ethangreen-dev/lovely-injector/pull/104
- feat: log panics in unix by @WilsontheWolf in https://github.com/ethangreen-dev/lovely-injector/pull/112
- Add strict patch file ordering to fix edge-case panics on Unix platforms by @ethangreen-dev in https://github.com/ethangreen-dev/lovely-injector/pull/113
- Add strict patch application order to pattern and regex patches by @ethangreen-dev in https://github.com/ethangreen-dev/lovely-injector/pull/114
- Update README.md path for Steam Deck by @drgrib in https://github.com/ethangreen-dev/lovely-injector/pull/93
- Fix bad file ordering on Windows + Unix by @ethangreen-dev in https://github.com/ethangreen-dev/lovely-injector/pull/117
- chore: bump crate versions to 0.7.0 by @ethangreen-dev in https://github.com/ethangreen-dev/lovely-injector/pull/119
- fix: bad workflow caused by lovely-mac name change by @ethangreen-dev in https://github.com/ethangreen-dev/lovely-injector/pull/120
- fix: change patch dir interp to be backwards compat by @ethangreen-dev in https://github.com/ethangreen-dev/lovely-injector/pull/121
New Contributors
- @asquared31415 made their first contribution in https://github.com/ethangreen-dev/lovely-injector/pull/102
- @drgrib made their first contribution in https://github.com/ethangreen-dev/lovely-injector/pull/93
Full Changelog: https://github.com/ethangreen-dev/lovely-injector/compare/v0.6.0...v0.7.0
v0.6.0
What's Changed
- Implement shared "Lovely runtime" to reduce code duplication across win and mac targets by @ethangreen-dev in https://github.com/ethangreen-dev/lovely-injector/pull/6
- Complex Regex patching and patch optimization via ropey by @ethangreen-dev in https://github.com/ethangreen-dev/lovely-injector/pull/7
- Cleanup previously dumped buffers at startup, remove @ prefix from file names by @ethangreen-dev in https://github.com/ethangreen-dev/lovely-injector/pull/11
- Add check and panic message when old
dwmapi.dll
binary is found within the game directory by @ethangreen-dev in https://github.com/ethangreen-dev/lovely-injector/pull/12 - Add
--disable-console
argument by @ethangreen-dev in https://github.com/ethangreen-dev/lovely-injector/pull/13 - Fix bad pattern text insert due to Rope byte API use mixup by @ethangreen-dev in https://github.com/ethangreen-dev/lovely-injector/pull/14
- Increment version to 0.5.0-beta2 by @ethangreen-dev in https://github.com/ethangreen-dev/lovely-injector/pull/15
- Fix build failure caused by libudis86-sys and retour on Linux native hosts by @ethangreen-dev in https://github.com/ethangreen-dev/lovely-injector/pull/16
- Fix hard crash when printing nil value, change mod path for mac systems by @tetraminus in https://github.com/ethangreen-dev/lovely-injector/pull/18
- Improved toml errors by @WilsontheWolf in https://github.com/ethangreen-dev/lovely-injector/pull/22
- Implement log file writing and apply general logging improvements by @ethangreen-dev in https://github.com/ethangreen-dev/lovely-injector/pull/25
- Fix #20 and #24 by @english5040 in https://github.com/ethangreen-dev/lovely-injector/pull/28
- Update README with Mac install guide, various other adjustments to content + formatting by @ethangreen-dev in https://github.com/ethangreen-dev/lovely-injector/pull/29
- Implement Github Action release workflow by @ethangreen-dev in https://github.com/ethangreen-dev/lovely-injector/pull/31
- Fix invalid archive file type in README install guide by @ethangreen-dev in https://github.com/ethangreen-dev/lovely-injector/pull/33
- make v0.5.0-beta3 release, ga fix for master branch trigger by @ethangreen-dev in https://github.com/ethangreen-dev/lovely-injector/pull/34
- fix ga workflow trigger by removing branch check by @ethangreen-dev in https://github.com/ethangreen-dev/lovely-injector/pull/35
- Clarify Steam Deck / Proton / Wine install instructions by @ethangreen-dev in https://github.com/ethangreen-dev/lovely-injector/pull/36
- feat: unhardcoded game directory by @WilsontheWolf in https://github.com/ethangreen-dev/lovely-injector/pull/27
- Implement mod disable / enable via .lovelyignore files by @ethangreen-dev in https://github.com/ethangreen-dev/lovely-injector/pull/37
- Remove erroneous dbg! statement sadge by @ethangreen-dev in https://github.com/ethangreen-dev/lovely-injector/pull/30
- Revert pattern patch
overwrite
deprecation warning by @ethangreen-dev in https://github.com/ethangreen-dev/lovely-injector/pull/39 - Update core version to v0.5.0-beta4 by @ethangreen-dev in https://github.com/ethangreen-dev/lovely-injector/pull/40
- Mac: use the name of the enclosing .app for the mod directory by @english5040 in https://github.com/ethangreen-dev/lovely-injector/pull/41
- update core version to v0.5.0-beta4 by @ethangreen-dev in https://github.com/ethangreen-dev/lovely-injector/pull/42
- Improve install instructions, again by @english5040 in https://github.com/ethangreen-dev/lovely-injector/pull/43
- Fix incorrect delta calculation by @english5040 in https://github.com/ethangreen-dev/lovely-injector/pull/45
- Pass through args to run_lovely.sh by @english5040 in https://github.com/ethangreen-dev/lovely-injector/pull/46
- Fix bad windows download link in release workflow by @ethangreen-dev in https://github.com/ethangreen-dev/lovely-injector/pull/49
- Update to v0.5.0-beta6 by @ethangreen-dev in https://github.com/ethangreen-dev/lovely-injector/pull/50
- Refactor, resolve some issues by @english5040 in https://github.com/ethangreen-dev/lovely-injector/pull/51
- Fix unconditional removal of last byte #53 by @dadahsueh in https://github.com/ethangreen-dev/lovely-injector/pull/54
- Update to v0.5.0-beta7 by @ethangreen-dev in https://github.com/ethangreen-dev/lovely-injector/pull/56
- fix: build failure caused by isize, itertools deps by @ethangreen-dev in https://github.com/ethangreen-dev/lovely-injector/pull/57
- Implement better patches by @flakywanderer in https://github.com/ethangreen-dev/lovely-injector/pull/68
- Allow patching games running on LOVE2D 12, or otherwise using luaL_loadbufferx by @tetraminus in https://github.com/ethangreen-dev/lovely-injector/pull/70
- Load modules lazily through package.preload by @flakywanderer in https://github.com/ethangreen-dev/lovely-injector/pull/74
- Add MIT license by @ethangreen-dev in https://github.com/ethangreen-dev/lovely-injector/pull/75
- fix: module source names by @WilsontheWolf in https://github.com/ethangreen-dev/lovely-injector/pull/76
- Fix edgecase panic caused by chunk names containing bad utf8 by @ethangreen-dev in https://github.com/ethangreen-dev/lovely-injector/pull/78
- Fix reverse output of Lua log messages by @ethangreen-dev in https://github.com/ethangreen-dev/lovely-injector/pull/80
- Update to v0.6.0 by @ethangreen-dev in https://github.com/ethangreen-dev/lovely-injector/pull/87
New Contributors
- @WilsontheWolf made their first contribution in https://github.com/ethangreen-dev/lovely-injector/pull/22
- @english5040 made their first contribution in https://github.com/ethangreen-dev/lovely-injector/pull/28
- @dadahsueh made their first contribution in https://github.com/ethangreen-dev/lovely-injector/pull/54
- @flakywanderer made their first contribution in https://github.com/ethangreen-dev/lovely-injector/pull/68
Full Changelog: https://github.com/ethangreen-dev/lovely-injector/compare/v0.4.0...v0.6.0
v0.4.0
What's Changed
-
Add mac support by @tetraminus in https://github.com/ethangreen-dev/lovely-injector/pull/2 Not yet released - requires more testing and implementation work. This is however an important first step.
-
Change DLL proxy to
version.dll
by @ethangreen-dev in https://github.com/ethangreen-dev/lovely-injector/pull/3 This fix is required to ensure lovely is loaded by the upcoming Balatro release, which includes a newer build of Love2D. -
Fix panic caused by invalid utf8 log msg in Lua print hook by @ethangreen-dev in https://github.com/ethangreen-dev/lovely-injector/pull/4 Fixes an edge-case panic caused by lossless UTF-8 conversion of log messages across Lua FFI within
sys::override_print
.
New Contributors
- @tetraminus made their first contribution in https://github.com/ethangreen-dev/lovely-injector/pull/2
Full Changelog: https://github.com/ethangreen-dev/lovely-injector/compare/v0.3.1...v0.4.0
v0.3.1
-
[9f1c346] Implement native
print
override This fixes missed output from Luaprint
calls -
[436fcc7] Implement lua module injection. This allows modules to be injected and
require
-ed. Initially implemented for nativefs. -
[436fcc7] Add Lovely metadata injection. This makes it possible for a Lua caller to query information about the Lovely environment.
-
[7ceeace] Add
LOVELY_INTEGRITY
global const to patched source files. This has been implemented to enable runtime integrity checking for Ankh. -
[ffeb76f] Fix missing target name check in
PatternPatch
.