From 51e59ce13d316b6101d95197ab718df84bae41b3 Mon Sep 17 00:00:00 2001
From: Curve
Date: Wed, 3 Jan 2024 12:17:08 +0100
Subject: [PATCH] docs(readme): update features, configuration and examples
---
README.md | 35 +++++++++++++++++++++--------------
1 file changed, 21 insertions(+), 14 deletions(-)
diff --git a/README.md b/README.md
index e51cb85..64825b5 100644
--- a/README.md
+++ b/README.md
@@ -2,21 +2,22 @@
-# 👋 Introduction
+## 👋 Introduction
Lime is a *cross-platform* framework that is focused on game modding and tries to provide you with useful features for your journey.
-# 🗒️ Features
+## 🗒️ Features
- Detours
- x86/x86-64
- - Supports lambdas as detours, similar to [rcmp](https://github.com/Smertig/rcmp)
+ - Lambda support
- Instruction
- - Allows to work with instructions (i.e. follow jumps/calls, ...)
+ > Allows to work with instructions (i.e. follow jumps/calls, ...)
- Memory Pages
- - Easy Allocation
+ > Easily allocate and work with memory pages
- Module
- Iterate Loaded Modules
- Iterate Symbols
+ - Load Modules
- Address
- Read / Write Data
- Signature Scanner
@@ -26,20 +27,24 @@ Lime is a *cross-platform* framework that is focused on game modding and tries t
> Lime follows the `RAII` paradigm, so you won't have to care about manually cleaning anything up (i.e. when allocating a page).
-# ⚙️ Configuration
+## ⚙️ Configuration
-### Entrypoint
+### Static Entrypoint
```cmake
set(lime_static_entrypoint ON)
```
-> Uses a platform-independent method for the entrypoint implementation.
-> You do not need to enable this to make use of the cross-platform entrypoint!
-### Tests
+Use a platform-independent method for the entrypoint implementation.
+You do not need to enable this to make use of the cross-platform entrypoint!
+
+### VirtualAlloc2
```cmake
-set(lime_tests ON)
+set(lime_no_alloc2 OFF)
```
-> If `ON`, tests will be built.
+
+Can be used to disable the usage of `VirtualAlloc2`.
+
+This should be used for compatibility with wine as it currently does not support the `LowestStartingAddress` requirement.
# 📦 Installation
- FetchContent
@@ -67,6 +72,8 @@ set(lime_tests ON)
target_link_libraries( cr::lime)
```
-# 📖 Examples
+## 📖 Examples
+
+https://github.com/Curve/lime/blob/7de073bd4736900193f6af5c543a3cf62e6f1a73/tests/hook.test.cpp#L46-L52
-https://github.com/Curve/lime/blob/9ca0e477e6d5493f3b82ea79b51a2e2eb9f8b85f/tests/hook.test.cpp#L25-L29
+> For more examples see [tests](tests/)