Releases: geode-sdk/geode
Development Release
Geode development release for commit fbba3e6. Since this is not a regular release, Geode will not install the resources automatically, so you should use the installer if you want them.
Geode v4.6.3
The latest update may have tried fixing the crashlogs on Windows, but it unfortunately was not entirely successful in that. This update is supposed to fully fix the issue.
v4.6.3
- Fix Windows crashlogs not appearing (for real this time) (dedf1eb)
Geode v4.6.2
Geode v4.6.1
Not a big update without rapid bugfixes! A small update that should fix a lot of crashes.
v4.6.1
- Fix several random crashes caused by incorrect relocation code in Tuliphook
- Make unzip upon download iOS only (0a6d09c)
Geode v4.6.0
Big update incoming! This update mainly adds support for JIT-less iOS and lots of internal TulipHook changes. Huge thanks to @FireMario211 and @altalk23! There might be bugs or crashes, so please let us know if you come across to them!
v4.6.0
- JIT-less iOS support! (#1395)
- This means that Geode now supports iOS 26 beta and above
- Follow instructions in the iOS launcher guide for setting up
- Old mods compiled for iOS need to be recompiled to work with this version, but other platforms are unaffected
- There are new additions to help with JIT-less specific hooking and patching
- Geode's own
Modify
classes should work out of the box - You can check if the platform is JIT-less iOS by using the
Loader::isPatchless
function - For custom hooks, you can use the
GEODE_MOD_STATIC_HOOK
macro to add a hook. This hook can be enabled and disabled like normal. - For custom patches, you can use the
GEODE_MOD_STATIC_PATCH
macro to add a patch. This patch will be applied by the launcher and can not be disabled. - If you have any dynamic patches, you can not use them with JIT-less iOS
- Geode's own
- This is a pretty big update, so there might be some issues with it. Please report the issues you find.
- Major TulipHook update from 2.5.0 to 3.1.0 (#1395)
- Adds debug logging behind the launcher flag
enable-tulip-hook-logs
- This update is a mainly internal one, but it is the most sensitive part of Geode
- If you find any issues with it, please report them
- Adds debug logging behind the launcher flag
- Unzip on mod download (#1390)
- Add Italian translation for the Windows installer (#1393)
- Add
AndroidInputTimestampEvent
(#1396) - Fix
keyUp
when command key is pressed on MacOS (#1324) - Don't create a popup when there are no mods to update (#1311)
- Add unzipped binary cleanup of unused platforms (#1377)
- Add API badge and tag for mod listing (#1389)
- Create Linux installer script (d38acee)
- Use
FORCE_COLOR
environment variable to force terminal colors (79761bf) - Patch conditional variable on older Wine versions (53df4d3)
- Make
ObjWrapper::getValue
non-const (5c3afbd) - Make Windows clipboard utilities unicode (82d8faf)
- Use custom certificate store for web requests on Windows (e0c1774)
- Add verbose curl logging (ec34df6)
- Add
writeStringSafe
that writes to a temporary file first (af806ba) - Force unzip of mods on launch if the binary is missing (e4dd3e8)
- Fix rare unzip crash (86fd2c4)
- Fix PCH on iOS (0d972ab)
- Don't load importance superseded mods (2c5230e)
- Add some more documentation comments (9b27ddc)
- Fix
LazySprite
overloads and performace issues (0f53f38, 5394954) - Error when trying to use
m_fields
in non-CCNode
modify classes (0aed958)
Geode v4.5.0
Mostly bugfix release, but has some pretty important fixes and other useful additions!
v4.5.0
- Multipart form support for Geode web utilities (#1345)
- Use system certificate store for web requests on Windows, should fix some SSL issues (665a000)
- Fix windows file dialogs needing alt tab in full screen (f1a2b1b)
- Improve iOS stack traces in crashlogs, show the memory address that caused the crash (230ad79)
- Shorten DLL paths in Windows crashlogs, for DLLs that are from GD or mods (f6a5fb3)
- Add a
geode::utils::string::pathToString
method, which safely handles UTF-16 conversions on Windows (95eed22, 138d071) - Fix base64 utilities not being exported and thus unusable by mods (dcd42df)
- Fix
geode::utils::game::exit
andrestart
not linking on all platforms except Windows (50c09b0) - Fix
Mod::getLaunchArgumentName
not actually existing (#1356) - Fix
openFolder
not working properly on MacOS (b1a8464) - Fix
LazySprite
callback sometimes being called multiple times (d273ce6) - Fix
LazySprite
sometimes invoking undefined behavior (6b5146a) - Fix
WeakRef
leaking memory if a strong reference outlives all weak references (9587ce3) - Add a way to cancel
LazySprite
loading (3a35321) - Unify destructor fix across all platforms, replace a global map with a stack, fix Windows leaking references (#1350, b0f38ad)
- Add some logs to web utilities and improve error messages (c2caafc)
- Make AxisScaling::grow shrink to initial size if needed (0c80db6, c3b4e3d)
- Make the name of the mod being uninstalled yellow (9a6346a)
- Fix static notification queue object causing crashes when closing the game (#1340)
- Fix compile issues with
gd::vector
on Android (#1351) - Use Clang 19 for windows builds (#1346)
- Additional CCRenderTexture members (#1352)
- Make property macros public (#1364)
Geode v4.4.0
This release came out much bigger than expected! Huge thanks to @RoootTheFox, @FireMario211 and the rest of the team involved on the iOS support. Note that iOS support is still experimental, expect a proper release soon.
v4.4.0
- Experimental support for iOS! (#1275, #1280, #1282, and a lot more other commits...)
- Use MDPopup for mod setting descriptions (#1286)
- Add a new filter that shows enabled mods before disabled ones on the install page (#1315)
- Save filters from
InstalledModListSource
to disk (#1315) - Fix a vanilla crash that could happen with large save files on Android (#1270)
- Fix a vanilla MacOS crash that could happen on game close (#1304, 7b877db, eb043db, 75c8efa, 8982011, 8bd735a)
- Fix a rare crash that could happen when searching for mods (eb874ad)
- Fix a small visual bug that happened when viewing mod problems (967b6ad)
- Fix some file access related crashes that could happen when loading mods (27ca8b6)
- Fix a small visual bug in
ModDeveloperList
(#1303, #1319) - Fix link buttons not being disabled when needed in
ModPopup
(#1303) - Print more useful information in Windows crashlogs when an access violation happens (c3d2b4e)
- Fix small issues with installer spanish translation (#1254)
- Optimize
ModsLayer
a lot (#1296, #1321, 427e0b0, eb874ad) - Remove Modtober tab (#1299)
- Add
geode::dirs::getResourcesDir()
and{gd_resources_dir}
setting variable (#1285) - Add
geode::globalListen()
andEventListener
operator= move (#1218) - Add base64 utils (#1307)
- Make
geode::utils::web::openLinkInBrowser
open the system webview on Android (#1295) - Add API to change log level per mod (#1305)
- Add safe area API for Android and iOS node placement (#1284)
- Add unicode conversion utils (#1310)
- Add missing
SimpleAxisLayout
getters (#1314) - Add
format_as
for all SeedValue classes (#1316) - Add
LazySprite
class, which handles image loading in a separate thread as much as possible (#1320) - Add
gd::pair
for non-Android platforms (#1322) - Add optional saving for
geode::utils::game::exit
andgeode::utils::game::restart
(061c335) - Add members for
CCParticleSystem
(#1273) - Add
gnustl
vector and map, alongside other dependencies (#1255) - Make
gd::pair
constructible fromstd::pair
(b444247) - Fix some
geode::stl
iterator conversions (e64ab20) - Expose
BreakLine
class (#1309) - Correctly check image size in MacOS crashlogs (#1274)
- Fix a MacOS crash related to extra keys added by Geode (f7d44f3)
- Fix memory leaks in
CCImage
usage (f38fe30) - Fix
CCSprite
members (#1308) - Update minimum CMake version to
3.21
(023274b) - Let our
libcurl
use the native system CA, alongside our bundle (#1301) - Fix
gnustl
set functions returning wrong type (ac1de8a) - Fix
SimpleAxisLayout
scaling not working properly in some cases (22f01bb) - Fix
SimpleAxisLayout
offset gaps inBackToFront
disrection (f4deccd) - Fix
TextArea
not handling scale properly on touches (#1313) - Fix undefined behaviour in path handling on file utils
- Rename
2.207
to2.2070
in the timestamp map (79ba633) - Update
TulipHook
to 2.4.4
Contributors
@RoootTheFox @FireMario211 @hiimjasmine00 @Alphalaneous @Prevter @0x5abe
Geode v4.3.1
Geode v4.3.0
This release adds some features for devs, and fixes some bugs related to settings.
v4.3.0
- Event export macro (#1243)
- See the docs for more info
- Fix settings
enable-if
parsing (315bf46, 1542e29) - Add
SimpleAxisLayout
(#1223)- A simpler and faster alternative to
AxisLayout
. Some features may be missing
- A simpler and faster alternative to
- Add environment variable for forcing terminal colors (39b1bef)
- Fix crashlog PDB search paths (#1222)
- Add support for missing keys and mouse buttons (#1258)
- Add utils::string::trim* overloads for specific charset (0d4dcb3, 17faf36)
- Round number settings to 5 decimal places (c9dbc4b)
- Allow number inputs to be invalid while typing and active (6c6215b)
- Optimize m_fields access to perform no allocations (7548421)
- Allow
Task<void>
, useful for coroutines (2bfff1a, 463ea22) - Add some coroutine utils (99cefab)
- Fix culling on ScrollLayer (b136e3b, b733c36)
- Fix
WeakRef
behavior with nullptr (9a8939f) - Remove handler from function if no hooks are active (dc14d4c)
- Fix some bugs in
geode::utils::ranges
methods (#1236, #1239) - Add patch for
CCGLProgram::compileShader
on remaining platforms (#1241) - Update the pugixml headers to be v1.15 compatible (#1247)
- Allow auto update across major versions if running in forward compat mode (4bb17a9)
- Re-add console log level to android (b1dc29a)
Geode v4.2.0
This release adds many new APIs and features for developers, as well as some smaller tweaks for the end user. Happy 2025!
v4.2.0
- Implement gd::set for android (#1197, #1207)
- Log levels for console and file logging (#1208)
- Now in the Geode settings you can set the minimum severity for logs
- Add GameEvent::Loaded, to avoid hooking Menulayer (c04bcaa)
- Check the header for more info
- Add setColor shorthands to RGBAProtocol (961c7c8)
- New dependency list syntax, also add per dependency settings (1161e18, 889fb0d, c1d3a53)
- The dependencies can then read these settings from their dependants
- Add auto log deletion after period of time (8f60c3c)
- Period length can be changed in settings
- Add
log::getCurrentLogPath()
(4c9f990) - Load changelog and mod about page from latest version on the index, instead of local (1d716fc)
- Cascade color and opacity for BasedButtonSprite (17107a2)
- Add Event v2 classes, wrapper around current event system (728df4e)
- Serialize std::filesystem::path as UTF-8 for matjson (#1210)
- Improve MDPopup (56a8ced)
- Fix macOS file picker, add file ext filters (0b61b50, 241be1b, b8cff6d)
- Add UUIDs for old GD versions on macOS (#1213)
- Add CCFontSprite and CCSpriteExtra to cocos (#1194)
- Reorganize buttons in Geode layer on 4:3 aspect ratio screens (54c93c4)
- Patch CCGLProgram::compileShader to prevent closing the game on shader errors (0340f52)
- Make all cocos members public (#1214)
- Remove modtober animation (f1bf2b6)
- Only show "Recommended by X mod" text on recommended dependencies, not suggested (5f64d77)
- Fix SceneManager use-after-free (8707a1b)
- Icon for pending mod updates is now persistent (0969ec3)
- Cleanup stale files from old index version (4d6c173)
- Rename Loader to Geode in LoadingLayer text (203c819)
- Add
GEODE_BUNDLE_PDB
option in CMake to allow bundling PDB files with mods (#1134)