Repo hygiene: drop internal planning files, clean docs for publication

Untrack TODO.md, RELEASING.md, RELEASE_NOTES.md, ideas/ and
docs/CLAUDE_PROPER_OBJECT_REGISTRATION_PLAN.md -- internal planning and
agent notes with no reason to be published. Files stay on disk locally.

Replace remaining absolute machine paths in docs with relative ones
(one referenced a separate private project), and swap decorative emoji
for ASCII markers.

README: lead with the no-longer-actively-developed notice.
This commit is contained in:
MarcelineVQ
2026-08-01 18:03:46 -07:00
parent 4865b583d1
commit 69051fd486
14 changed files with 121 additions and 813 deletions
+21 -21
View File
@@ -5,62 +5,62 @@
## Critical Address Fixes
### ❌ ProcessWorldWithFrustum
### [X] ProcessWorldWithFrustum
- **Old Address:** `0x00683000` (WRONG - no function at this address)
- **Correct Address:** `0x00682fa0`
- **Ghidra Signature:** `undefined __fastcall ProcessWorldWithFrustum(float * frustumBounds)`
- **First Byte:** `0x57` (PUSH EDI)
- **Stolen Bytes:** 9 bytes
- **Status:** ✅ FIXED in discovery_hooks.cpp
- **Status:** [OK] FIXED in discovery_hooks.cpp
### ❌ RenderObjectsWithLOD
### [X] RenderObjectsWithLOD
- **Old Address:** `0x00684600` (WRONG - no function at this address)
- **Correct Address:** `0x00684510`
- **Ghidra Signature:** `undefined __stdcall RenderObjectsWithLOD(void)`
- **First Byte:** `0x55` (PUSH EBP)
- **Stolen Bytes:** 8 bytes
- **Status:** ✅ FIXED in discovery_hooks.cpp
- **Status:** [OK] FIXED in discovery_hooks.cpp
## Verified Correct Addresses
### ✅ ScenePresent
### [OK] ScenePresent
- **Address:** `0x0059a870`
- **Ghidra Signature:** `void __fastcall CGxDeviceD3d::ScenePresent(CGxDeviceD3d * device)`
- **First Byte:** `0x55` (PUSH EBP)
- **Stolen Bytes:** 6 bytes
- **Calling Convention:** __fastcall (saves ECX+EDX) ✅ Correct in code
- **Calling Convention:** __fastcall (saves ECX+EDX) [OK] Correct in code
### ✅ CullAndProcessWorldChunks
### [OK] CullAndProcessWorldChunks
- **Address:** `0x00683040`
- **Ghidra Signature:** `undefined __stdcall CullAndProcessWorldChunks(void)`
- **First Byte:** `0x55` (PUSH EBP)
- **Stolen Bytes:** 8 bytes
- **Calling Convention:** __stdcall (no register saves) ✅ Correct in code
- **Calling Convention:** __stdcall (no register saves) [OK] Correct in code
### ✅ ProcessStaticObjectsCulling
### [OK] ProcessStaticObjectsCulling
- **Address:** `0x00683bf0`
- **Ghidra Signature:** `undefined __fastcall ProcessStaticObjectsCulling(int staticObjectManager)`
- **First Byte:** `0x55` (PUSH EBP)
- **Stolen Bytes:** 9 bytes
- **Calling Convention:** __fastcall (saves ECX+EDX) ✅ Correct in code
- **Calling Convention:** __fastcall (saves ECX+EDX) [OK] Correct in code
### ✅ CM2Scene_DrawModelBatch
### [OK] CM2Scene_DrawModelBatch
- **Address:** `0x0070cf70`
- **Ghidra Signature:** `undefined __fastcall CM2Scene_DrawModelBatch(void * renderContext)`
- **First Byte:** `0x55` (PUSH EBP)
- **Stolen Bytes:** 8 bytes
- **Calling Convention:** __fastcall (saves ECX+EDX) ✅ Correct in code
- **Calling Convention:** __fastcall (saves ECX+EDX) [OK] Correct in code
## Calling Convention Summary
| Function | Ghidra Convention | Code Implementation | Status |
|----------|------------------|---------------------|--------|
| ScenePresent | __fastcall | __fastcall (ECX+EDX) | ✅ Correct |
| ProcessWorldWithFrustum | __fastcall | __fastcall (ECX+EDX) | ✅ Correct |
| CullAndProcessWorldChunks | __stdcall | __cdecl (no saves) | ✅ OK (both no reg saves) |
| ProcessStaticObjectsCulling | __fastcall | __fastcall (ECX+EDX) | ✅ Correct |
| RenderObjectsWithLOD | __stdcall | __cdecl (no saves) | ✅ OK (both no reg saves) |
| CM2Scene_DrawModelBatch | __fastcall | __fastcall (ECX+EDX) | ✅ Correct |
| ScenePresent | __fastcall | __fastcall (ECX+EDX) | [OK] Correct |
| ProcessWorldWithFrustum | __fastcall | __fastcall (ECX+EDX) | [OK] Correct |
| CullAndProcessWorldChunks | __stdcall | __cdecl (no saves) | OK (both no reg saves) |
| ProcessStaticObjectsCulling | __fastcall | __fastcall (ECX+EDX) | [OK] Correct |
| RenderObjectsWithLOD | __stdcall | __cdecl (no saves) | OK (both no reg saves) |
| CM2Scene_DrawModelBatch | __fastcall | __fastcall (ECX+EDX) | [OK] Correct |
## Prologue Byte Analysis
@@ -87,9 +87,9 @@ The Ghidra MCP `get_bytes` tool only returns 1 byte regardless of the length par
## Recommendations
1. ✅ **Address fixes have been applied** to discovery_hooks.cpp
2. ⚠️ **Test the DLL** after recompilation to verify hooks work correctly
3. ⚠️ **Monitor for crashes** that could indicate incorrect stolen byte counts
1. [OK] **Address fixes have been applied** to discovery_hooks.cpp
2. [!] **Test the DLL** after recompilation to verify hooks work correctly
3. [!] **Monitor for crashes** that could indicate incorrect stolen byte counts
4. If crashes occur after address fix, use Ghidra GUI to manually count instruction bytes in prologues
## Next Steps