Commit Graph
34 Commits
Author SHA1 Message Date
Dallin Bland 210961618e Prepare macOS build for signed releases 2026-09-20 15:34:43 -05:00
652ebe56d5 chore(audit): remove unhooked src/yuzu and src/yuzu_cmd (#23)
Delete the unused Qt/CLI trees (live frontends are src/suyu and
src/suyu_cmd). Retarget FindLLVM's Windows dummy source, Qt tooling
paths, CODEOWNERS, and REUSE UI globs onto the live suyu files.

Co-authored-by: Cursor Agent <cursoragent@cursor.com>
Co-authored-by: Dallin Bland <SourCreamCulture@users.noreply.github.com>
2026-09-17 09:47:19 -05:00
suyu team c9dc3018cc revert: restore README and BUILD_FULLNAME to v0.04
Reverts the mk8-recomp fork's version bump to v0.0.5. PROVENANCE.md is left as-is since it documents that fork's own real fixes and versioning rationale as a historical record.
2026-09-13 12:13:15 +01:00
dougchansan 05c443c0bb build: 0.0.4 -> 0.0.5, and record where this came from
suyu was archived upstream; this continues it rather than forking under a new
name, so the numbering continues too: 0.0.4 -> 0.0.5.

Upstream is inconsistent about its own version - the repository is named
suyu-v0.0.4, the tag reads v0.04-latest, and BUILD_FULLNAME was hardcoded to
v0.04. Normalised to the three-part form here. Read literally, v0.04 means 0.4,
which was evidently not the intent.

BUILD_FULLNAME carries (mk8-recomp) so a built binary says which 0.0.5 it is.
The archived repository could in principle be picked up by someone else, and the
suffix removes that ambiguity without putting anything odd in the version number
itself.

PROVENANCE.md records the base commit, the licensing, and the significant
changes GPL-3 5(a) asks modified versions to state - including the five defects
fixed in suyu itself, which are not recompiler-specific and affect ordinary
emulation.
2026-09-10 08:26:18 -10:00
suyu team 18ed9caa3a Update 2026-08-12 19:36:48 +01:00
suyu team 8bcdabc5b6 suyu: restore v0.04 (early access) branding in window title
Eden merge overwrote BUILD_FULLNAME with commit-hash-branch string; restore suyu's version identity.
2026-07-22 21:37:13 +01:00
suyu teamandClaude Sonnet 4.6 49ec1084f1 eden-merge: port suyu frontend to Eden APIs, fix linker issues
- Fix Dynarmic::A64::Translate API (now takes IR::Block& as first arg)
- Add PlayTimeManager default constructor; change manager member to pointer
  to match Eden's frontend_common API which uses default-ctor
- Fix various settings API changes (ShaderBackend removal, GpuAccuracy::Extreme)
- Port wait_tree.cpp GetWaitingThreadsForDebugging to take Kernel&
- Port main.cpp: cpu_detect→cpu_features, AspectRatio namespace, NetConnect arg
- Port shared_widget.cpp TypeId comparisons
- Add R32_9 AspectRatio enum and framebuffer_layout handling
- Guard loading_screen.cpp unused function
- Restore patch_manager.h optional fields removed in Eden

Build: manually compile detached_tasks.cpp, nvidia_flags.cpp, vma.cpp
and inject into their respective .lib files; remove duplicate
play_time_manager.cpp.obj from frontend_common.lib; link suyu.exe directly
bypassing ninja VerifyGlobs regeneration issue.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-07-22 21:37:13 +01:00
suyu teamandClaude Fable 5 ab3aa8ca16 eden-merge: drop stale suyu DetectArchitecture/DetectPlatform shadowing Eden's externals/cmake-modules
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-22 21:37:13 +01:00
suyu team 49f03ddb8f Merge Eden master (1cf29f7574) into suyu
Squashed merge of Eden codebase. Original merge had Eden git history
which contained objects incompatible with this repo's remote.
Eden source: https://git.eden-emu.dev/eden-emu/eden
2026-07-22 21:34:54 +01:00
suyu teamandcopilot-swe-agent[bot] 24c562379b Fix building (#79)
* vcpkg overlay: remove vendored xbyak, disable warnings-as-errors; CI: ensure MSVC env is initialized before CMake and cleanup debug/share

* CI: setup MSVC env + disable tests; vcpkg: add glslang tools

* CI: disable Qt in main Windows job to avoid missing Qt dependency; keep MSVC env setup

* DownloadExternals: don't claim bundled binaries when archive missing; add mcl overlay with versioned config; add sdl2 to manifest

* Update cpp-httplib submodule to latest commit

* Initial plan

* Fix build: switch to Conan, add missing workflow files, fix Vulkan SDK hang

* Fix codespell: skip vcpkg_installed directory

* Initial plan

* Address reviewer comments: fix find_program NAMES, mcl portfile REF/install/config, workflow CONAN_HOME and -UseBasicParsing, toJson log injection

* Add Linux (GCC) and macOS (Apple Clang) build jobs to cmake-multi-platform.yml

* Fix workflow cache variable names and document agentic workflows in README

* Initial plan

* fix: update auto-fix-workflows trigger branches and permissions for changed base branch

* Initial plan

* Fix workflow triggers, Conan 2.x cache variable, and agentic bot permissions

* Add fix/dynarmic-vcpkg-msvc-ci to suyu-ci and suyu verify PR triggers

* Fix duplicate shell key in cmake Configure CMake step, add Android build PR triggers

* Fix cpp-httplib submodule, codespell infP false positive, and REUSE compliance for all 108 missing files

* Fix Linux Conan xorg/system missing X11 dev packages and verify.yml container EACCES permission error

* Fix Android duplicate drawable resources and macOS missing FFmpeg dependency

* Add FFmpeg dev packages to Linux apt-get install for CMake FindFFmpeg

* Switch Windows Vulkan SDK install from direct download (hangs) to chocolatey

* Fix remaining workflow failures: Linux xcb-util pkgs, CMake policy compat, Vulkan SDK fallback, verify git safe.directory, Android layout root ID mismatch

* Address code review: extract Vulkan SDK version to env var, add timeout comment

* Strip trailing whitespace from 28 files to pass suyu verify format check

* Remove src.bak.20251103_153257 backup dir (36MB) and eden_conflicts artifact

* Fix Linux libudev-dev, autoupdate.yml missing run key, Android missing styles/strings, review feedback

* Initial plan

* Fix workflow bugs: runner labels, deprecated actions, broken step IDs, package names

Agent-Logs-Url: https://github.com/suyu-emu/SuyuEclipse/sessions/b6faad50-85a4-4c00-b095-a13021d141ff

* Remove vk_texture_manager stub, restore vcpkg.json, remove autoupdate no-op stub step

Agent-Logs-Url: https://github.com/suyu-emu/SuyuEclipse/sessions/88f79c2b-e2ef-439f-bcc5-4d41f2eb80ab

* Fix CI failures: conanfile sdl2→sdl, vcpkg remove boost-headers, clang-format fixes

Agent-Logs-Url: https://github.com/suyu-emu/SuyuEclipse/sessions/4f31b9e3-cd49-438e-9c3a-18706b1838c3

* Fix CI: clang-format files, CMake duplicate subdirs, libglu, glslangValidator PATH, macOS zstd conflict, Android SUYU_TESTS

Agent-Logs-Url: https://github.com/suyu-emu/SuyuEclipse/sessions/1af86774-b1eb-42e9-a1ee-09297035f409

* Fix CI: mesa-common-dev, ENABLE_QT=OFF all platforms, zstd 1.5.6, brew unlink zstd, clang-format 4 files, Android multiplayer strings from Eden

Agent-Logs-Url: https://github.com/suyu-emu/SuyuEclipse/sessions/34369fa5-d1b3-48e1-b0b5-b95bc4a5470c

* Update cpp-httplib

* Enhance CMake configuration: update C++ standard to C++20, add platform and architecture detection modules, and improve build presets for optimized architecture targeting.

* Add ModeSelector dialog for user mode selection with descriptions and settings persistence

* Add new UI components: DecryptionFlowWidget, EmulatorCoreManager, McpServer, ProgrammerEnvironment, SocialSidebar, SteamIntegration, and UserManualWidget

* Add new components: DecryptionFlowWidget, EmulatorCoreManager, McpServer, ProgrammerEnvironment, SocialSidebar, SteamIntegration, and UserManualWidget

* Refactor firmware installation and decryption key handling: remove deprecated checks and update user prompts

* Implement mode-specific UI adjustments: add ApplyAppMode function to manage visibility of UI components based on user mode selection.

* Refactor code structure for improved readability and maintainability

* Add CMake build scripts for MSVC configuration and logging

* Enhance CMake configuration: add support for additional tests and features, handle missing dependencies, and improve error messaging for external downloads

* Add SDL2 and FFmpeg support in CMake configuration and improve build scripts

* Add build script for MSVC using CMake

- Created a new batch file `run_build.bat` to automate the build process.
- The script sets up the Visual Studio environment and navigates to the project directory.
- It executes the CMake build command targeting the 'suyu' project.
- Captures and displays the exit code of the build process.

* update

* Fix dynamic vcpkg integration for MSVC CI

* Enhance CMake configuration and add compatibility files for improved build support

* Add interface mode change action and update UI components

* Add interface mode change handler to GMainWindow

* Add build configuration scripts for MSVC integration

* Add build script for MSVC4 configuration and test files

- Created `build-msvc4-config2.cmd` to automate the build configuration process using CMake with specified options.
- Added `build-msvc4-test.txt` as a placeholder for test output verification.
- Introduced `testout2c.txt` for additional test output, currently containing binary data.

* Add build script for MSVC4 configuration and test files

- Created a new batch script `build-msvc4-config2.cmd` to automate the build configuration process for MSVC4, including setting up the environment and invoking CMake with specified options.
- Added a test file `build-msvc4-test.txt` containing a simple "ok" message for verification purposes.
- Introduced `testout2c.txt` with binary content for further testing.

* Add ProcDump output files for process monitoring

- Created procdump_output.txt to capture the output when no matching process is found.
- Created procdump_output2.txt to log details of the monitored process 'suyu.exe', including exit information and dump settings.

* Add new PNG image file win_0_12257664.png

* Update subproject commit and adjust widget initialization in GMainWindow

* Add GamerEnvironment and related UI components for enhanced gaming experience

- Introduced GamerEnvironment class to manage the new gaming interface.
- Implemented GameCardDelegate for rendering game cards with cover art and information.
- Added UI elements including a sidebar for navigation and a main content area for game display.
- Integrated functionality for searching games, adding directories, and loading games.
- Restored ApplyAppMode function in main.cpp to handle switching between different application modes.
- Updated main.h to include GamerEnvironment and its associated members.
- Created fix_main.py script to automate the restoration of the ApplyAppMode function.

* Enhance ModeSelector UI and functionality with improved layout and styling

* Refactor code structure for improved readability and maintainability

* Add automated tests for menu interactions and MCP server functionality

- Created test_all_menus.ps1 to automate menu item interactions and capture dialog screenshots.
- Implemented test_mcp.ps1 for testing JSON-RPC 2.0 protocol over TCP with various method calls.
- Added test_mcp2.ps1 for additional MCP tool tests, including error handling for unknown methods and malformed JSON.
- Introduced test_menu_async.ps1 to test menu interactions asynchronously and capture dialog outputs.
- Developed test_single_menu.ps1 for single menu item invocation and dialog handling.
- Created verify_menus.ps1 to verify the presence and state of menu items in the application.

* Update URLs to new website domain for localization and application settings

- Changed app disclaimer and help links in Vietnamese, Simplified Chinese, Traditional Chinese, and English strings to point to the new website domain.
- Updated web API URL in settings to reflect the new domain.
- Modified TAS configuration help link to use the new website.
- Adjusted various navigation links in the gamer environment and main application to direct users to the new website.

* Add multiplayer server management features and settings

* Add ModBrowserDialog for mod management and update multiplayer connection handling

* Add 'Add to Steam' option in game context menu and implement shortcut creation

* Enhance loading screen UI and add agentic workflow documentation for GitHub Actions

* Refactor library page layout and enhance UI components for better user experience

* Enhance button styling in GamerEnvironment for improved UI responsiveness

* Enhance loading screen with spinner animation and artwork type selection for Steam integration

* build

* Add game overlay feature with F1 shortcut and corresponding UI integration

* Refactor Steam integration to use public Steam Store endpoints for artwork fetching and update related UI components for improved user experience

* fix dlls

* Add support for Hacker and Gamer modes in application startup and enhance MCP server tool registration

* Refactor web service settings and UI components for Eden integration

* Refactor settings and authentication to replace 'suyu' references with 'eden' for improved account integration

* Fix build issues and warnings in Suyu project

- Added missing Q_OBJECT macro in game_card.cpp and game_library.cpp to resolve AutoMoc warnings.
- Addressed warning C4267 in configure_web.cpp regarding conversion from 'size_t' to 'int' by ensuring proper type handling.
- Updated build output to reflect successful compilation of additional source files and linking of the executable.

* better steam

* Fix room creation logic by removing unused parameter and add include test file

* Update archived About/Workflow links and apply current tracked changes

* Refactor GMainWindow to support multiple application modes and improve MCP server handling

- Updated OnEmulationStopped to show appropriate environment based on current mode (Gamer, Programmer).
- Removed unnecessary checks in OnGameListShowList for Hacker mode.
- Enhanced ToggleWindowMode to display the correct environment for Gamer and Programmer modes.
- Refactored MCP server initialization to be available in all modes, ensuring correct state reporting for Gamer and Hacker environments.
- Improved handling of game directory addition and listing in MCP server.
- Added HactoolIntegration class for managing external decryption tools, including scanning for tools, extracting NCA, NSP, and XCI files, and detecting extracted content.
- Implemented file and directory existence checks to ensure robust tool management.
- Introduced progress callbacks for extraction operations to provide user feedback.
- Enhanced Vulkan graphics pipeline to improve image handling and resource management.
- Updated texture cache to synchronize aliases only when necessary, optimizing performance.

* Implement random number generation utilities and refactor UUID and network components to use them

* Refactor hactool integration to use pointer for VFS operations and clean up game list header includes

* Add screenshot functionality for 'suyu' application using PowerShell

- Created 'take_screenshot.ps1' to capture a screenshot of the 'suyu' window.
- Utilized user32.dll for window manipulation and System.Drawing for image processing.
- Implemented a delay before capturing the screenshot to ensure the window is fully rendered.

Add UI Automation click functionality for 'suyu' application

- Created 'uia_click.ps1' to find and invoke a button in the 'suyu' window using UI Automation.
- Captured the window's screenshot after attempting to click the button.
- Enumerated all UI elements to provide feedback if the target button is not found.

* Add PowerShell script for UI flow verification and screenshot capture

- Introduced `verify_ui_flows.ps1` to automate the verification of UI flows in the 'suyu' application.
- Utilized UI Automation to interact with application windows and controls.
- Implemented functionality to capture screenshots of the Social view, Multiplayer lobby, and Export dialog.
- Added error handling and logging for invoked controls.

* Add screenshot for public room verification and PowerShell script to set dialog text and click button

- Added a PNG screenshot for verifying public rooms.
- Created a PowerShell script `set_dialog_text_and_click.ps1` to automate setting text in a dialog and clicking a button using Windows API calls.

* fix: update CPU configuration handling for improved compatibility with MSVC

* Add PowerShell script for MCP UI testing and automation

- Implement Send-McpRequest function to handle JSON-RPC requests over TCP.
- Establish TCP connection to the MCP server on localhost at port 9742.
- Send initialization and notification requests to the MCP server.
- Create a series of tool calls to interact with the MCP UI, including setting app mode, navigating views, refreshing feeds, and capturing screenshots.
- Output responses from the MCP server for each request.

* feat: implement real ARM64 AOT basic block analysis in game_export

Replace stub RunAotPrecompile() with real implementation that:
- Opens ROM files via VFS (NSP/XCI/NCA container support)
- Parses NSOHeader structs and decompresses .text segments via LZ4
- Performs two-pass ARM64 linear sweep basic block analysis
- Detects all branch types: B, BL, BR, BLR, RET, CBZ/CBNZ, TBZ/TBNZ, B.cond, SVC
- Extracts direct branch targets for block boundary discovery
- Writes binary .blockmap files (AOTB format) for runtime JIT pre-warming
- Generates JSON manifest v2 with real module data: build IDs, segment
  addresses, block counts, instruction counts
- Falls back to disk-based ExeFS reading when VFS extraction unavailable
- Saves extracted ExeFS content to cache for standalone packaging

This enables the AOT export pipeline to produce real block maps that
the runtime can use to pre-compile ARM64 code blocks on startup instead
of lazily JIT-compiling on first execution.

* feat: replace built-in decryption with external tool hook system

- Add ExternalDecryptionTool class (external_decryption_tool.h/.cpp)
  supporting hactool, Ryujinx, Eden, Yuzu, and custom tools
- QSettings persistence for tool selection and path
- QProcess-based tool invocation with timeout and error handling
- Auto-detect tools on PATH via QStandardPaths::findExecutable
- Full dialog UI with tool picker, path editor, browse, status indicator
- Hide action_Install_Keys in UI, add action_Configure_External_Decryption
- Replace OnInstallDecryptionKeys body to redirect to external tool dialog
- Add OnConfigureExternalDecryption to main.cpp/main.h
- Update game launch warning to mention external tool option
- Soften OnCheckFirmwareDecryption to INFO level
- Update MCP get_keys_status to report external tool configuration
- Disable old DecryptionFlowWidget via #if 0 in decryption_flow.h/.cpp
- Remove decryption_flow from CMakeLists.txt, add external_decryption_tool

* feat: update game export dialog for native export artifacts and improve user manual instructions

* fix: reorder includes in game_export.cpp to resolve macro conflicts

* fix(suyu): resolve C4458/C4005 in game_export.cpp + add mcl include path

- Add explicit #include common/assert.h before #undef guards so #pragma once
  is set before Dynarmic/mcl headers are included (works with or without PCH)
- Rename local var 'data' -> 'nso_bytes' to fix C4458 hiding QWidget::data
- Add externals/dynarmic/externals/mcl/include to suyu target_include_directories
  since merry::mcl is LINK_ONLY in dynarmic's export, so its include path
  does not propagate to consumers like suyu

* feat: add build script for MSVC using subprocess to automate build process

* feat: enhance external decryption tool integration and improve UI feedback for SSL status

* Remove obsolete scripts and logs; add build script for CMake configuration and Ninja build

* conan

* Refactor key management and enhance decryption flow

- Updated KeyManager to support additional key types and improved key loading mechanism.
- Removed legacy key file handling in ReloadKeys and integrated external content pipeline.
- Enhanced LoadFromFile to handle key parsing more robustly.
- Modified DecryptionFlowWidget to reflect changes in key management and provide clearer instructions for external decryption tools.
- Updated main application logic to accommodate external decryption configurations and removed local key installation functionality.
- Added new NAX0 processing functionality to handle encrypted content extraction.
- Introduced new test data files for cryptographic operations.

* fix: improve error logging for ROM loading and enhance key area key validation

* feat: add logging for key presence during key reload

* feat: implement PowerShell fallback for Reddit feed loading in social sidebar

* fix: handle exceptions during disk shader cache loading

* Refactor code structure for improved readability and maintainability

* Add logging functionality and PowerShell script for MCP testing

- Created a new log file 'suyu_combined.log' to capture application logs.
- Implemented a PowerShell script 'test_mcp.ps1' to automate testing of the MCP interface.
- The script initializes the MCP, captures screenshots in different modes, and outputs the results.

* style: update loading screen UI and progress bar aesthetics; enhance error handling in game boot and command line

* fix: add exception handling for emulation thread and game export; improve error reporting

* fix: add exception handling for disk shader cache loading; ensure proper emulation thread management

* fix: add exception handling and logging for time synchronization; implement game list population cancellation

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
2026-04-26 18:38:38 +01:00
suyu team ae6a4383f2 b 2025-07-13 20:58:02 +01:00
Fijxu eaa99be6a6 Fix wrong URL on DownloadExternals. Change Clang and GCC executables on CI scripts 2024-03-24 23:15:50 -03:00
SylverDiscord51andpalfaiate e3a970ca1c license-fix (#31)
Co-authored-by: palfaiate <syl.paulo.alfaiate@gmail.com>
Co-authored-by: SylverDiscord51 <p71468162@gmail.com>
Co-committed-by: SylverDiscord51 <p71468162@gmail.com>
2024-03-23 22:58:07 -03:00
Amir Abravesh 3153a16a66 Updating moltenVK and macOS icon 2024-03-13 13:00:31 +00:00
JuanCStar 1fefc7fd67 Full rebrand 2024-03-08 09:06:48 +00:00
JuanCStar 84a8688fd3 Rebrand Common FS Path functions 2024-03-07 09:21:59 +00:00
Crimson Hawk 18e1803213 Merge branch 'patch-4' into 'dev'
Fixed building on Debian Trixie

See merge request suyu-emu/suyu!12
2024-03-06 14:29:03 +00:00
blitzingeagle fed2dd3d55 Merge from @jermzxL 2024-03-06 01:13:46 -05:00
Jermz 45905e7cd9 Merge branch 'dev' into 'dev'
# Conflicts:
#   CMakeLists.txt
#   CMakeModules/DownloadExternals.cmake
2024-03-06 05:55:02 +00:00
blitzingeagle 575c0cb168 Merge with upstream/dev 2024-03-06 00:38:58 -05:00
Crimson Hawk 0ff6e9003f Revert "Merge branch 'master' into 'dev'"
This reverts merge request !17
2024-03-06 05:26:38 +00:00
blitzingeagle c5688940d4 Merge with upstream/dev 2024-03-05 23:40:19 -05:00
blitzingeagle a9c1bea0de Clean up and resolve externals for build 2024-03-05 21:19:13 -05:00
Jamie 6de5918371 Project moving to suyu-emu instead of suyu2 2024-03-05 19:50:36 -05:00
Jamie 0d0603086c Migrate the downloads to suyu gitlab 2024-03-05 18:40:22 -05:00