-
Notifications
You must be signed in to change notification settings - Fork 131
GD Update Procedure
GD just got an update? fuck! but also here are some steps for it
if the update is only out on windows, just copy the folder for the latest bindings and remove the address for all functions. use something like ghidra version tracking to find a bunch of addresses automatically, making use of the SyncBromaScript probably
now go to the geode part
This ↓ is assuming there is an android version
this is so we can diff it, to apply the patches.
See the comments on generate.mjs
in the bindings repo, run it to get a clean broma
can be the armv7 version, i think we only ever tried that. See the DumpVirtuals.java
script on the bindings repo
After that is done, put the new virtuals.json in the bindings repo
do the steps of 1 but now with the symbol info from the new version (and the new virtuals.json too)
run something like git diff old.bro new.bro > changes.diff
to get the diff between the two versions.
copy the entire bindings folder for the old version, remove any function addresses (if there are any),
and then apply the .diff file to the GeometryDash.bro* idk the command for doing that lol
diffing is a terrible idea and its very prone to wrong syntax, dont bother with this method
now its on the loader side of things
go edit the GEODE_GD_VERSION cmake variable: https://github.com/geode-sdk/geode/blob/main/CMakeLists.txt#L172
if this is an windows update, go add it to the gd version timestamp map as well: https://github.com/geode-sdk/geode/blob/main/loader/src/platform/windows/gdTimestampMap.hpp#L11
generate stubs for the new android binary (do this for both arches!!)
arm-linux-androideabi-objcopy --only-section=.dynsym --only-section=.dynstr libcocos2dcpp.so
you can get that weird objcopy from the r17c NDK, but also you can use the regular objcopy
in termux lol
youll probably need to update libcocos2d.lib (and extensions)
use a script like this to generate the .lib from the dlls: https://gist.github.com/matcool/05f8d1dbfa594ef81550dca49c76f01f
for gdstring.lib use this:
https://gist.github.com/matcool/3261e808bfc2785436b4ff2a3807b2e7
Geode has some patch and hook addresses embedded like dynamic_cast for macos and empty gd::string for android and fnt cache patch and glfw box patch for windows
there might be some stuff i forgot right now
ok i think thats all?
go bother chloe to update her symbol server too