| Both sides previous revisionPrevious revisionNext revision | Previous revision |
| servers:windows:games:trinitycore_3.3.5_localhost [2025/11/28 21:45] – [CMake] Sean Rhone | servers:windows:games:trinitycore_3.3.5_localhost [2025/12/13 05:49] (current) – [CMake] Sean Rhone |
|---|
| * TrinityCore ((https://www.trinitycore.org)) | * TrinityCore ((https://www.trinitycore.org)) |
| * 3.3.5 ((https://github.com/TrinityCore/TrinityCore/tree/3.3.5)) | * 3.3.5 ((https://github.com/TrinityCore/TrinityCore/tree/3.3.5)) |
| | * [[https://talk.trinitycore.org/t/singleplayer-scripts-and-desktop-start-launchers-on-windows-linux-freebsd/33293/7|TrinityCore Forums]] |
| |
| ===== Media ===== | ===== Media ===== |
| |
| * [[https://media.realmofespionage.xyz/index/category/6|Progress Pics]] | * [[https://media.realmofespionage.xyz/index/category/6|Progress Pics]] |
| | |
| | ===== Resources ===== |
| | |
| | * [[https://trinitycore.org/|TrinityCore]] |
| | * [[https://trinitycore.info/|TrinityCore MMo Project Wiki]] |
| |
| ===== Prerequisites ===== | ===== Prerequisites ===== |
| ===== Visual Studio 2022 ===== | ===== Visual Studio 2022 ===== |
| |
| * https://visualstudio.microsoft.com/vs/older-downloads/ | * https://aka.ms/vs/17/release/vs_community.exe |
| * Professional ((2025/11/15: Older community link downloaded ''VS18'' (2026) which failed Boost check regardless of CMake version; Trial/no-key seemingly compiles fine)) | * :?: TODO: More info/source |
| |
| ==== Required Components ==== | ==== Required Components ==== |
| * Desktop development with C++ (C++ core desktop features) | * Desktop development with C++ (C++ core desktop features) |
| * MSVC v143 - VS 2022 C++ x64/x86 build tools (Latest) | * MSVC v143 - VS 2022 C++ x64/x86 build tools (Latest) |
| * Windows 11 SDK (10.0.26100.6901) | * Windows 11 SDK (10.0.26100.7175) |
| | * MSBuild support for LLVM (clang-cl) toolset |
| | |
| | ===== LLVM ===== |
| | |
| | * https://github.com/llvm/llvm-project/releases |
| | * Last tested: ''LLVM-21.1.7-win64.exe'' |
| |
| ===== Boost ===== | ===== Boost ===== |
| |
| * https://sourceforge.net/projects/boost/files/boost-binaries/ | * https://sourceforge.net/projects/boost/files/boost-binaries/ |
| * Last tested: ''boost_1_90_0_b1-msvc-14.3-64.exe'' | * Last tested: ''boost_1_90_0-msvc-14.3-64.exe'' |
| |
| ===== CMake ===== | ===== CMake ===== |
| * https://cmake.org/download/#dev | * https://cmake.org/download/#dev |
| * https://cmake.org/files/dev/?C=M;O=D (Ctrl + F) | * https://cmake.org/files/dev/?C=M;O=D (Ctrl + F) |
| * Last tested: ''cmake-4.2.20251114-gbda3a80-windows-x86_64.msi'' | * Last tested: ''cmake-4.2.20251210-g39f71a8-windows-x86_64.msi'' |
| |
| * ''[ ]'' Add CMake to the PATH environment variable | * ''[ ]'' Add CMake to the PATH environment variable |
| "%ProgramFiles%\MariaDB 12.2\bin\mariadbd.exe" --defaults-file="%ProgramFiles%\MariaDB 12.2\data\my.ini" | "%ProgramFiles%\MariaDB 12.2\bin\mariadbd.exe" --defaults-file="%ProgramFiles%\MariaDB 12.2\data\my.ini" |
| |
| "%ProgramFiles%\MariaDB 12.2\bin\mariadb.exe" -u "root" -p | "%ProgramFiles%\MariaDB 12.2\bin\mariadb.exe" -u "root" |
| |
| ===== Databases ===== | ===== Databases ===== |
| ===== CMake ===== | ===== CMake ===== |
| |
| **** | * https://clang.llvm.org/docs/UsersManual.html |
| | * https://learn.microsoft.com/en-us/cpp/build/reference/gd-gr-gv-gz-calling-convention?view=msvc-170 |
| |
| <code>"%ProgramFiles%\CMake\bin\cmake.exe" -S "%UserProfile%\Projects\TrinityCore-335\src" -B "%UserProfile%\Projects\TrinityCore-335\build" -G "Visual Studio 17 2022" --fresh -Wno-dev -DBOOST_ROOT="%SYSTEMDRIVE%/local/boost_1_90_0_b1" -DMYSQL_INCLUDE_DIR="%ProgramFiles%\MariaDB 12.2\include\mysql" -DMYSQL_LIBRARY="%ProgramFiles%\MariaDB 12.2\lib\libmariadb.lib" -DWITHOUT_METRICS="1" -DTOOLS="1"</code> | SET "LLVMInstallDir=%ProgramFiles%\LLVM" |
| | |
| | SET "LLVMToolsVersion=21" |
| | |
| | <code>RMDIR /S /Q "%UserProfile%\Projects\TrinityCore-335\build" && "%ProgramFiles%\CMake\bin\cmake.exe" -S "%UserProfile%\Projects\TrinityCore-335\src" -B "%UserProfile%\Projects\TrinityCore-335\build" -G "Visual Studio 17 2022" --fresh -Wno-dev -DBOOST_ROOT="%SYSTEMDRIVE%/local/boost_1_90_0" -DMYSQL_INCLUDE_DIR="%ProgramFiles%\MariaDB 12.2\include\mysql" -DMYSQL_LIBRARY="%ProgramFiles%\MariaDB 12.2\lib\libmariadb.lib" -DWITHOUT_METRICS="1" -DTOOLS="1" -T "ClangCL" -DBoost_COMPILER="-vc143" -DCMAKE_CXX_FLAGS="/EHs /arch:AVX2 /favor:INTEL64 /Gz /Oy /GS- /guard:cf- /Zc:__cplusplus /std:c++latest /W0 -Wno-everything -ffast-math -funsafe-math-optimizations"</code> |
| | |
| | DIR /B "%ProgramFiles%\LLVM\lib\clang" |
| |
| ===== Compile ===== | ===== Compile ===== |
| |
| * 8 minutes i5-8400H ((2025/11/15: ''00:08:02.70'')) | * ~5 minutes i5-8400H ((2025/12/12: ''00:04:43.25'')) |
| | |
| | <code>"%ProgramFiles%\Microsoft Visual Studio\2022\Community\MSBuild\Current\Bin\amd64\MSBuild.exe" "%UserProfile%\Projects\TrinityCore-335\build\ALL_BUILD.vcxproj" -target:"Rebuild" -property:"Configuration=Release" -maxCpuCount</code> |
| | |
| | SET "LLVMInstallDir=" |
| |
| <code>"%ProgramFiles%\Microsoft Visual Studio\2022\Professional\MSBuild\Current\Bin\amd64\MSBuild.exe" "%UserProfile%\Projects\TrinityCore-335\build\ALL_BUILD.vcxproj" -target:"Rebuild" -property:"Configuration=Release"</code> | SET "LLVMToolsVersion=" |
| |
| ===== DLLs ===== | ===== DLLs ===== |
| ====== Content ====== | ====== Content ====== |
| |
| * Expects [[games;windows;world_of_warcraft_3.3.5#install|World of Warcraft 3.3.5]] | * Expects [[games;windows;world_of_warcraft_3.3.5|World of Warcraft 3.3.5]] |
| | * ''7,704,216 Wow.exe'' |
| |
| DIR "%ProgramFiles(x86)%\World of Warcraft 3.3.5\Wow.exe" | DIR "%ProgramFiles(x86)%\World of Warcraft 3.3.5\Wow.exe" |
| ===== MMaps ===== | ===== MMaps ===== |
| |
| * :!: 30-40 minutes i5-8400H ((2025/08/31: ''37 Minutes 10 Seconds'' at ''--threads 8'')) | * :!: 30-40 minutes i5-8400H ((2025/12/13: ''28 Minutes 26 Seconds'' at ''--threads 8'')) |
| * ''--threads %NUMBER_OF_PROCESSORS%'' | * ''--threads %NUMBER_OF_PROCESSORS%'' |
| |
| MOVE /Y "%ProgramFiles(X86)%\World of Warcraft 3.3.5\Cameras" "%UserProfile%\Projects\TrinityCore-335\build\bin\Release" && MOVE /Y "%ProgramFiles(X86)%\World of Warcraft 3.3.5\dbc" "%UserProfile%\Projects\TrinityCore-335\build\bin\Release" && MOVE /Y "%ProgramFiles(X86)%\World of Warcraft 3.3.5\maps" "%UserProfile%\Projects\TrinityCore-335\build\bin\Release" && MOVE /Y "%ProgramFiles(X86)%\World of Warcraft 3.3.5\mmaps" "%UserProfile%\Projects\TrinityCore-335\build\bin\Release" && MOVE /Y "%ProgramFiles(X86)%\World of Warcraft 3.3.5\vmaps" "%UserProfile%\Projects\TrinityCore-335\build\bin\Release" | MOVE /Y "%ProgramFiles(X86)%\World of Warcraft 3.3.5\Cameras" "%UserProfile%\Projects\TrinityCore-335\build\bin\Release" && MOVE /Y "%ProgramFiles(X86)%\World of Warcraft 3.3.5\dbc" "%UserProfile%\Projects\TrinityCore-335\build\bin\Release" && MOVE /Y "%ProgramFiles(X86)%\World of Warcraft 3.3.5\maps" "%UserProfile%\Projects\TrinityCore-335\build\bin\Release" && MOVE /Y "%ProgramFiles(X86)%\World of Warcraft 3.3.5\mmaps" "%UserProfile%\Projects\TrinityCore-335\build\bin\Release" && MOVE /Y "%ProgramFiles(X86)%\World of Warcraft 3.3.5\vmaps" "%UserProfile%\Projects\TrinityCore-335\build\bin\Release" |
| |
| ===== Clean-up ===== | ==== Check Files ==== |
| |
| **** | * ''TrinityCore-335\build\bin\Release'' needs ''Cameras'', ''dbc'', ''maps'', ''mmaps'', and ''vmaps'' folders |
| | |
| | TREE "%UserProfile%\Projects\TrinityCore-335\build\bin\Release\dbc" && TREE "%UserProfile%\Projects\TrinityCore-335\build\bin\Release\maps" && TREE "%UserProfile%\Projects\TrinityCore-335\build\bin\Release\Cameras" && TREE "%UserProfile%\Projects\TrinityCore-335\build\bin\Release\vmaps" && TREE "%UserProfile%\Projects\TrinityCore-335\build\bin\Release\mmaps" |
| | |
| | "explorer.exe" "%UserProfile%\Projects\TrinityCore-335\build\bin\Release" |
| | |
| | ===== Clean-up ===== |
| |
| RMDIR /S /Q "%ProgramFiles(X86)%\World of Warcraft 3.3.5\Buildings" && DEL /Q "%ProgramFiles(X86)%\World of Warcraft 3.3.5\mapextractor.exe" "%ProgramFiles(X86)%\World of Warcraft 3.3.5\mmaps_generator.exe" "%ProgramFiles(X86)%\World of Warcraft 3.3.5\vmap4assembler.exe" "%ProgramFiles(X86)%\World of Warcraft 3.3.5\vmap4extractor.exe" | RMDIR /S /Q "%ProgramFiles(X86)%\World of Warcraft 3.3.5\Buildings" && DEL /Q "%ProgramFiles(X86)%\World of Warcraft 3.3.5\mapextractor.exe" "%ProgramFiles(X86)%\World of Warcraft 3.3.5\mmaps_generator.exe" "%ProgramFiles(X86)%\World of Warcraft 3.3.5\vmap4assembler.exe" "%ProgramFiles(X86)%\World of Warcraft 3.3.5\vmap4extractor.exe" |
| | |
| | "explorer.exe" "%ProgramFiles(X86)%\World of Warcraft 3.3.5" |
| |
| ===== World Database ===== | ===== World Database ===== |
| |
| * https://github.com/TrinityCore/TrinityCore/releases | * https://github.com/TrinityCore/TrinityCore/releases |
| | * Expects [[windows:10#zip|7-Zip]] |
| * Last tested: ''TDB_full_world_335.25101_2025_10_21.7z'' | * Last tested: ''TDB_full_world_335.25101_2025_10_21.7z'' |
| |
| |
| # Connection | # Connection |
| LoginDatabaseInfo = ".;3306;authserver;x;authserver" | |
| MySQLExecutable = "C:\Program Files\MariaDB 12.2\bin\mariadb.exe" | |
| BindIP = "127.0.0.1" | BindIP = "127.0.0.1" |
| | MySQLExecutable = "C:\Program Files\MariaDB 12.2\bin\mariadb.exe" |
| AllowLoggingIPAddressesInDatabase = 0 | AllowLoggingIPAddressesInDatabase = 0 |
| | |
| | LoginDatabaseInfo = ".;3306;authserver;x;authserver" |
| |
| # Etc | # Etc |
| RealmsStateUpdateDelay = 0 | |
| Updates.EnableDatabases = 1 | Updates.EnableDatabases = 1 |
| Updates.CleanDeadRefMaxCount = -1 | Updates.CleanDeadRefMaxCount = -1 |
| |
| # Connection | # Connection |
| | BindIP = "127.0.0.1" |
| | MySQLExecutable = "C:\Program Files\MariaDB 12.2\bin\mariadb.exe" |
| | AllowLoggingIPAddressesInDatabase = 0 |
| | |
| LoginDatabaseInfo = ".;3306;authserver;x;authserver" | LoginDatabaseInfo = ".;3306;authserver;x;authserver" |
| CharacterDatabaseInfo = ".;3306;characters;x;characters" | CharacterDatabaseInfo = ".;3306;characters;x;characters" |
| WorldDatabaseInfo = ".;3306;worldserver;x;worldserver" | WorldDatabaseInfo = ".;3306;worldserver;x;worldserver" |
| MySQLExecutable = "C:\Program Files\MariaDB 12.2\bin\mariadb.exe" | |
| BindIP = "127.0.0.1" | |
| AllowLoggingIPAddressesInDatabase = 0 | |
| |
| # Server | # Server |
| |
| ====== Scripts ====== | ====== Scripts ====== |
| | |
| | * 2025/12/11: Below WIP |
| |
| ===== Server Start ===== | ===== Server Start ===== |
| "%ProgramFiles%\Git\bin\git.exe" -C "%UserProfile%\Projects\TrinityCore-335\src" pull origin "3.3.5" --rebase | "%ProgramFiles%\Git\bin\git.exe" -C "%UserProfile%\Projects\TrinityCore-335\src" pull origin "3.3.5" --rebase |
| |
| "%ProgramFiles%\CMake\bin\cmake.exe" -S "%UserProfile%\Projects\TrinityCore-335\src" -B "%UserProfile%\Projects\TrinityCore-335\build" -G "Visual Studio 17 2022" --fresh -Wno-dev -DBOOST_ROOT="%SYSTEMDRIVE%/local/boost_1_90_0_b1" -DMYSQL_INCLUDE_DIR="%ProgramFiles%\MariaDB 12.2\include\mysql" -DMYSQL_LIBRARY="%ProgramFiles%\MariaDB 12.2\lib\libmariadb.lib" -DWITHOUT_METRICS="1" -DTOOLS="0" | SET "LLVMInstallDir=%ProgramFiles%\LLVM" |
| | SET "LLVMToolsVersion=21" |
| |
| "%ProgramFiles%\Microsoft Visual Studio\2022\Professional\MSBuild\Current\Bin\amd64\MSBuild.exe" "%UserProfile%\Projects\TrinityCore-335\build\ALL_BUILD.vcxproj" -target:"Build" -property:"Configuration=Release" | "%ProgramFiles%\CMake\bin\cmake.exe" -S "%UserProfile%\Projects\TrinityCore-335\src" -B "%UserProfile%\Projects\TrinityCore-335\build" -G "Visual Studio 17 2022" --fresh -Wno-dev -DBOOST_ROOT="%SYSTEMDRIVE%/local/boost_1_90_0" -DMYSQL_INCLUDE_DIR="%ProgramFiles%\MariaDB 12.2\include\mysql" -DMYSQL_LIBRARY="%ProgramFiles%\MariaDB 12.2\lib\libmariadb.lib" -DWITHOUT_METRICS="1" -DTOOLS="0" -T "ClangCL" -DBoost_COMPILER="-vc143" -DCMAKE_CXX_FLAGS="/EHs /arch:AVX2 /favor:INTEL64 /Gz /Oy /GS- /guard:cf- /Zc:__cplusplus /std:c++latest /W0 -Wno-everything -ffast-math -funsafe-math-optimizations" |
| | |
| | "%ProgramFiles%\Microsoft Visual Studio\2022\Community\MSBuild\Current\Bin\amd64\MSBuild.exe" "%UserProfile%\Projects\TrinityCore-335\build\ALL_BUILD.vcxproj" -target:"Build" -property:"Configuration=Release" -maxCpuCount |
| | |
| | SET "LLVMInstallDir=" |
| | SET "LLVMToolsVersion=" |
| |
| :: End</code> | :: End</code> |
| TIMEOUT /T "2" /NOBREAK | TIMEOUT /T "2" /NOBREAK |
| |
| CD "%UserProfile%\Downloads" | "%ProgramFiles%\MariaDB 12.2\bin\mariadb-dump.exe" -u "root" --opt -r "%UserProfile%\Downloads\%RANDOM%-localhost-authserver.sql" "authserver" |
| | "%ProgramFiles%\MariaDB 12.2\bin\mariadb-dump.exe" -u "root" --opt -r "%UserProfile%\Downloads\%RANDOM%-localhost-characters.sql" "characters" |
| ECHO Root MariaDB user password prompts: | |
| "%ProgramFiles%\MariaDB 12.2\bin\mariadb-dump.exe" -u "root" -p --opt -r "localhost-authserver.sql" "authserver" | |
| "%ProgramFiles%\MariaDB 12.2\bin\mariadb-dump.exe" -u "root" -p --opt -r "localhost-characters.sql" "characters" | |
| |
| "%ProgramFiles%\MariaDB 12.2\bin\mariadb-admin.exe" -u "root" -p "shutdown" | "%ProgramFiles%\MariaDB 12.2\bin\mariadb-admin.exe" -u "root" "shutdown" |
| |
| :: End</code> | :: End</code> |
| ==== authserver ==== | ==== authserver ==== |
| |
| "%ProgramFiles%\MariaDB 12.2\bin\mariadb.exe" -u "root" -p --execute="CREATE DATABASE authserver" | "%ProgramFiles%\MariaDB 12.2\bin\mariadb.exe" -u "root" --execute="CREATE DATABASE authserver" |
| |
| "%ProgramFiles%\MariaDB 12.2\bin\mariadb.exe" -u "root" -p "authserver" < "%UserProfile%\Downloads\localhost-authserver.sql" | "%ProgramFiles%\MariaDB 12.2\bin\mariadb.exe" -u "root" "authserver" < x |
| |
| ==== characters ==== | ==== characters ==== |
| |
| "%ProgramFiles%\MariaDB 12.2\bin\mariadb.exe" -u "root" -p --execute="CREATE DATABASE characters" | "%ProgramFiles%\MariaDB 12.2\bin\mariadb.exe" -u "root" --execute="CREATE DATABASE characters" |
| |
| "%ProgramFiles%\MariaDB 12.2\bin\mariadb.exe" -u "root" -p "characters" < "%UserProfile%\Downloads\localhost-characters.sql" | "%ProgramFiles%\MariaDB 12.2\bin\mariadb.exe" -u "root" "characters" < x |
| |