Commit graph

10 commits

Author SHA1 Message Date
ragnarok-clanker
c072a4f094 Build: unitPrelude Source/Linkage; build_exe.py and gen_ide.py force each unit's prelude with /FI like clank checks 2026-11-11 17:17:24 +01:00
ragnarok-clanker
271a88e324 exe build: post-link patch stage for edits made to the shipped exe
build_exe.py now runs compile -> link (+ .map) -> patch. scripts/exe/postprocess.py
applies scripts/exe/patches/NNNN_*.py in order, each located by symbol, verified
against exact bytes, dropping base relocations it overwrites; --no-postprocess skips it.

0001: CSession::LoadExternalSettings jumps over switch (g_serviceType) to case 0,
as the original does at 0x00DFD08F (e9 10 00 00 00).
2026-11-11 14:01:22 +01:00
024cdab1e9 Maintenance: Recovered/ includes and build_exe.py paths follow the source reorganisation 2026-11-11 02:08:56 +01:00
ragnarok-clanker
a3d68ba2b2 exe build: find MSVC without td, offer to install Build Tools 2026-11-10 18:49:47 +01:00
ragnarok-clanker
4499cc1a1c build_exe: show compile progress and announce the link step 2026-11-10 12:57:09 +01:00
ragnarok-clanker
6f3c593b69 Generate Visual Studio and clangd project files from data/compile.json; remove stale CMake build
scripts/exe/gen_ide.py writes build/Ragexe.sln (Makefile project: Build runs
scripts/exe/build_exe.py like td compile, Rebuild/Clean, Debug starts
build/exe/Ragexe.exe; all units and headers with per-unit IntelliSense flags)
and build/editor-x86/compile_commands.json (clangd, VS Code, CLion).
The hand-written CMakeLists.txt covered 392 of 980 units without the
per-unit flags and was unused by clank; removed with its ThirdParty file.
.clangd drops /execution-charset (CP949), which clang does not accept.
2026-11-09 14:18:30 +01:00
ragnarok-clanker
519b896965 build_exe: incremental compiles keyed on flags, source and /showIncludes headers 2026-11-06 19:59:38 +01:00
ragnarok-clanker
6f30f2e656 Import libs: use EXPORTAS so the exe imports the DLLs' real export names 2026-11-06 19:44:46 +01:00
ragnarok-clanker
9b9c369f0c Move exe-only code to Recovered/ and rebuild virtualised PakAuxiliary::Extract
Recovered/ holds the code linked only into the standalone exe (scripts/exe/build_exe.py), outside the Clank source dirs:
- jsoncons/ and nProtect/ moved from scripts/exe/; GameGuard stand-in follows main's renamed entry points.
- GPak/PakAuxiliary.cpp: Extract (virtualised in every build; 02-19 jumps out at 0x0065861E) rebuilt from the open GRF Editor decoder, after the visible 02-19 prologue; inline key and kRO keys 1-4. Apply traps (unreachable in 02-19).
- GGHash/GGHash.cpp: CGGHash::Load/Check/VerifyHash trap (RagHash.dat check unreachable in 02-19).
The whole client links: 984 units, 0 unresolved.
2026-11-06 19:33:10 +01:00
ragnarok-clanker
e11260a408 Add standalone exe build tooling under scripts/exe
build_exe.py compiles every unit in data/compile.json with the pinned toolchain and links Ragexe.exe.
Not part of the decompilation and not in data/compile.json: imports/*.def (original DLL import tables),
jsoncons/ (v0.170.2 headers + JsonCppLoader glue), nProtect/GameGuard.cpp (no-op GameGuard stand-in).
2026-11-06 15:10:16 +01:00