Skip to content

Fix/cross compile win64#11

Open
nokia17092-ux wants to merge 6 commits into
id-Software:masterfrom
nokia17092-ux:fix/cross-compile-win64
Open

Fix/cross compile win64#11
nokia17092-ux wants to merge 6 commits into
id-Software:masterfrom
nokia17092-ux:fix/cross-compile-win64

Conversation

@nokia17092-ux

Copy link
Copy Markdown

No description provided.

devin-ai-integration Bot and others added 6 commits June 20, 2026 13:03
Total conversion of DOOM 3 BFG Edition into a dark medieval FPS
inspired by DOOM: The Dark Ages.

Core Game Systems:
- DarkAgesGame: Main game management with 25-level campaign across 5 acts
- DarkAgesCombat: Advanced melee combat with combo chains, parries, dodges,
  shield blocking, backstabs, glory kills, and stamina management
- DarkAgesRenderer: Rendering pipeline optimized for Intel HD 520 (120+ FPS)
  with dynamic resolution scaling, per-act atmospheres, quality presets
- DarkAgesProgression: Soul Essence upgrade system with 24 upgrades across
  4 categories (combat, defense, mobility, utility)

Weapons (9 unique):
- Dark Broadsword, War Mace, Battle Axe, Chain Flail (melee)
- Heavy Crossbow, Throwing Axes (ranged)
- Tower Shield (defensive)
- Hellfire Staff (magic)
- Great Hammer of Doom (super weapon)

Enemies (12 types + 3 bosses):
- Undead Soldiers, Dark Knights, Hell Hounds, Plague Sorcerers
- Wraiths, Dark Cultists, Iron Golems, Fire Drakes
- Boss: Siege Demon, Dragon King, The Dark Lord

Level Design (25 maps):
- Act I: The Fallen Kingdom (burning village, castle, crypt, forest, mountain)
- Act II: The Dark Lands (cathedral, plague town, fortress, bone wastes)
- Act III: The Underworld (frozen depths, lava forge, tombs, crystal caverns)
- Act IV: The Cursed Realm (abbey, blood swamp, shadow maze, demon arena)
- Act V: Hell's Domain (gates, soul river, fortress, throne, final stand)

Content:
- Complete material/shader definitions for medieval aesthetic
- Particle effects and FX for combat, environment, bosses
- Sound shader definitions for all weapons, enemies, environment
- Full English string table with story/lore for all 5 acts
- Game configuration optimized for ThinkPad T460s at 120+ FPS
- Save/load system with progression persistence
- CMake build system with Skylake CPU optimizations

Engine Modifications:
- Licensee.h: DARKAGES_BUILD preprocessor for game branding
- Game_local.h: Dark Ages version string
- Dynamic resolution scaling targeting 120+ FPS
- Reduced shadow maps (512px), limited dynamic lights (4)
- Aggressive LOD distances for Intel integrated GPU performance

Co-Authored-By: nokia1709 <nokia17092@gmail.com>
- Custom game icon (sword+shield emblem, 16-256px sizes) in ICO format
- Windows resource file (.rc) with icon and version info for EXE metadata
- Updated Visual Studio project: Dark Ages sources, icon, output name DarkAges.exe
- Added DARKAGES_BUILD preprocessor define to _Common.props
- Updated CMakeLists.txt with RC compilation and portable packaging
- CMake toolchain file for MinGW Windows cross-compilation
- BUILD_DARKAGES.bat: one-click Visual Studio build script
- BUILD_DARKAGES_CMAKE.bat: CMake alternative build script
- build_windows.sh: Linux cross-compilation script

Co-Authored-By: nokia1709 <nokia17092@gmail.com>
- sys_defines.h: GCC-compatible alignment, inlining, noreturn macros
- sys_includes.h: conditional DirectX includes, x86intrin.h for GCC
- sys_types.h: __builtin_unreachable() for GCC NODEFAULT
- StrStatic.h: fix operator= calls via temporary idStr objects
- Simd.cpp: GCC inline assembly for rdtsc timing
- win_thread.cpp: wrap SEH in _MSC_VER guard
- qgl.h: case-correct GL/gl.h include for Linux
- Fix backslash include paths to forward slashes
- snd_local.h: wrap XAudio2 includes in _MSC_VER guard
- Toolchain file with MinGW compat flags
- snapshot_jobs.h symlink for case-sensitive filesystems

Co-Authored-By: nokia1709 <nokia17092@gmail.com>
…ges-total-conversion

DOOM: The Dark Ages - Complete Medieval Total Conversion
- Add stub headers for MinGW compatibility (atlbase.h, Wbemidl.h, Windowsx.h, DxErr.h)
- Fix x64 register names in win_main.cpp (Eax->Rax, etc.)
- Remove MSVC inline assembly (clrstrk function)
- Replace win_shared.cpp with stub implementation for GetCallerAddr, Sys_GetCallStack
- Add missing include paths for framework headers
- Fix forward declaration for idLobbyToSessionCBLocal
- Fix GWL_WNDPROC -> GWLP_WNDPROC for x64
- Add missing includes (Console.h, KeyInput.h, EditField.h)
- Fix precompiled.h path in win_stats.cpp
- Copy icon for resource compilation
- Add DoomLibStubs.cpp with DoomInterface class, DoomLib namespace
- Add MinGWStubs.cpp with JPEG, zlib, and sys stubs
- Add Image_stub.cpp with idImage class stub
- Add GLStubs.cpp with OpenGL function stubs
- Add ZlibStubs.cpp with zlib compression stubs
- Add JpegStubs.cpp with JPEG decompression stubs
- Add EndLevel_stub.cpp for game logic stubs
- Add MinGW.cmake toolchain configuration
- Add build scripts for static libraries (libjpeg.a, libz.a, libglstubs.a, etc.)

Build system changes:
- Update CMakeLists.txt with Win64/MinGW support
- Add cross-compilation flags and OpenGL linking
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

2 participants