-
Notifications
You must be signed in to change notification settings - Fork 27
Gta4 dev #212
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Closed
Closed
Gta4 dev #212
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
…tion Major changes: - Rename MarathonRecomp/ -> LibertyRecomp/ - Rename MarathonRecompLib/ -> LibertyRecompLib/ - Replace all MARATHON_RECOMP_* macros with LIBERTY_RECOMP_* - Delete Sonic-specific API (Sonicteam/, Chao/ namespaces) - Create RAGE engine placeholder stubs for GTA IV - Update flatpak metadata for io.github.ozordi.libertyrecomp - Update README.md for GTA IV project - Update user paths, registry keys, window titles - Update build configuration and workflow files This fork adapts the static recompilation framework for Grand Theft Auto IV on Xbox 360. The XenonRecomp and XenosRecomp tools are preserved as they are generic Xbox 360 recompilers.
Builds for: - Windows x64 - Linux x64 - Linux ARM64 - macOS ARM64 (Apple Silicon) - macOS x64 (Intel) - Linux Flatpak Triggers on version tags (v*) or manual dispatch. Creates GitHub releases with all artifacts.
The original MarathonRecomp required private Sonic '06 assets. For LibertyRecomp, we make these optional so CI can run without them.
macos-13 runners are retired, see: actions/runner-images#13046
Prevent accidental commits of: - Grand Theft Auto IV* folders - GTA4/ gta4/ folders - *.xex *.iso *.xcp files
- Created GTA4.toml config for XenonRecomp - Generated gta4_switch_tables.toml with ~28k lines of switch tables - XenonAnalyse successfully analyzed the default.xex
…> LIBERTY_RECOMP_TOOLS_ROOT)
- Add arm64-osx triplet to macos-base preset in CMakePresets.json - Move ninja installation before vcpkg cache step in workflow to ensure it's available when vcpkg bootstraps
- Rename all Marathon.h/inl includes to Liberty.h/inl - Update MARATHON_RECOMP_* macros to LIBERTY_RECOMP_* - Update locale strings for GTA IV (Liberty Recompiled) - Update update_checker URLs to OZORDI/LibertyRecomp - Update bug_report.yml for GTA IV (TLAD, TBoGT DLC) - Update flatpak README - Comment out MarathonRecompResources submodule - Update CMakeLists.txt paths - Replace Sonicteam classes with GTA4 equivalents - Update ffmpeg-core references - Add RAGE engine stubs (RAGE.h, RAGE.inl, README.md)
…penFile, support dir handles in NtQueryVolumeInformationFile; add diagnostics
- Increase physical heap from 1.5GB to 2GB by moving RESERVED_END from 0xA0000000 to 0x80000000 - Improve TryGetAnsiPath garbage path detection to reject paths starting with non-ASCII characters or containing majority garbage bytes - Add logging to XFindFirstFileA for debugging - Implement MmQueryAllocationSize - returns allocation size via g_userHeap - Implement ObDereferenceObject, KeSetDisableBoostThread, ExTerminateThread, KeEnterCriticalRegion, KeLeaveCriticalRegion as no-ops - Extend RtlNtStatusToDosError with more status code translations - Add missing error codes to xdm.h: ERROR_FILE_NOT_FOUND, ERROR_INVALID_PARAMETER, ERROR_INVALID_NAME, ERROR_HANDLE_EOF, ERROR_ALREADY_EXISTS - Add STATUS_OBJECT_NAME_INVALID and STATUS_OBJECT_NAME_COLLISION constants Game still not progressing past initial setup - threads calling null function pointers and empty path loads indicate uninitialized structures.
- Add persistent_storage_manager for GTA IV save data (load/save/delete) - Add gta4_input_patches with official Xbox 360 control scheme - Add memcpy_patches for native memory operations - Update CMakeLists.txt with new source files - Update .gitignore to exclude copyrighted game content - Various kernel and file system improvements for GTA IV support New files: - user/persistent_storage_manager.h/.cpp - Save data management - patches/gta4_input_patches.h/.cpp - Controller input handling - patches/memcpy_patches.cpp - Memory operation fixes
- Update audio_patches.cpp for RAGE audio engine (replaces Sonicteam refs) - Add GTA4Audio namespace for volume control (music, effects, master) - Add GTA4Radio namespace for in-game radio system - Add macOS audio attenuation support - Enable audio_patches.cpp in CMakeLists.txt build
- GameWindow now detects native display resolution at startup instead of defaulting to 1280x720 - Simplified sub_829A1F00 file loading hook - removed complex async tracking - Set XXOVERLAPPED completion flags before returning per static recomp playbook - Removed retry loop bypass (sub_827F0B20) as it broke file loading Current state: Game initializes GPU, loads shaders, but still loops on async file reads. The async completion signaling is correct but game's streaming system keeps re-requesting same data.
- Add platform_paths.h/cpp for cross-platform install directories - Windows: %LOCALAPPDATA%\LibertyRecomp - Linux: ~/.local/share/LibertyRecomp/ (XDG compliant) - macOS: ~/Library/Application Support/LibertyRecomp/ - Add iso_extractor.h/cpp for Xbox 360 ISO extraction - Wrapper for extract-xiso tool - Cross-platform support - Add rpf_extractor.h/cpp for RPF archive parsing - Native RPF2 header/TOC parsing - SparkCLI fallback for encrypted files - Shader scanning and extraction from RPFs - Add shader_converter.h/cpp for RAGE FXC shader extraction - Parse RAGE FXC container (magic: rgxa) - Extract Xbox 360 shader binaries - Platform detection (DXIL/SPIR-V/AIR) - Add rage_fxc_extractor standalone tool - Update installer.cpp with enhanced flow - RPF shader scanning integration - Platform paths integration - Add comprehensive documentation - SHADER_PIPELINE.md - Shader extraction and conversion - INSTALLATION_ARCHITECTURE.md - Platform paths and install flow - LibertyRecompLib/ppc/docs.md - Boot-critical function documentation - Update README.md with project status and documentation links - Update .gitignore for Reference Projects and temp files
- Remove shader_batch/, shader_batch2/, shader_batch3/, shader_batch4/ (copyrighted game assets) - Remove test_shaders/ (copyrighted game assets) - Remove build_xenosrecomp/ (build output) - Add comprehensive .gitignore patterns for: - Development scripts (run*.sh, run_xenon.py) - Temp output files (log2.txt, recomp_output.txt, etc.) - Shader batches and extracted shaders - Build tool output directories
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
No description provided.