‹ Reports
The Dispatch

OSS Report: cemu-project/Cemu


Cemu Project Faces Surge in Issue Reports Amidst Ongoing Development Efforts

Cemu, an open-source Wii U emulator, is experiencing a significant increase in issue reports, particularly concerning graphical glitches and controller compatibility, as the development team continues to address critical bugs and implement new features.

Recent activities highlight the project's focus on resolving game-specific issues such as crashes in "Skylanders Trap Team" (#1397) and "Bayonetta 2" (#1396), alongside efforts to improve device compatibility and user experience. The community remains actively engaged, contributing detailed reports that aid in troubleshooting.

Recent Activity

The recent surge in issue reporting includes critical bugs like graphical issues in "Skylanders Trap Team" (#1397) and crashes in "Bayonetta 2" (#1396). These issues suggest underlying problems with the emulator's rendering capabilities. Additionally, ongoing challenges with USB device handling and motion controls indicate areas needing improvement for better peripheral support.

Development Team and Recent Activity

  1. Exzap

    • Implemented GetNfpReadOnlyInfo and fixed Amiibo detection in Mario Kart 8.
  2. capitalistspz

    • Enhanced MEMPTR<T> functionality and managed icon storage improvements.
  3. goeiecool9999

    • Fixed multiple bugs including crashes related to controller dialogs and Vulkan renderer issues.
  4. 00cedke

    • No recent commits; has one open pull request.
  5. deReeperJosh

    • No recent commits; has one open pull request.
  6. Xphalnos

    • No recent commits; has one open pull request.

Of Note

Quantified Reports

Quantify Issues



Recent GitHub Issues Activity

Timespan Opened Closed Comments Labeled Milestones
7 Days 4 2 4 0 1
30 Days 23 17 40 0 1
90 Days 84 52 182 0 1
1 Year 245 156 746 35 1
All Time 817 568 - - -

Like all software activity quantification, these numbers are imperfect but sometimes useful. Comments, Labels, and Milestones refer to those issues opened in the timespan in question.

Quantify commits



Quantified Commit Activity Over 30 Days

Developer Avatar Branches PRs Commits Files Changes
goeiecool9999 1 4/3/0 4 13 262
Exzap 1 0/0/0 1 1 100
capitalistspz 1 2/2/0 2 2 33
cedkeChat (00cedke) 0 1/0/1 0 0 0
¥IGA (Xphalnos) 0 1/0/0 0 0 0
Joshua de Reeper (deReeperJosh) 0 1/0/0 0 0 0

PRs: created by that dev and opened/merged/closed-unmerged during the period

Detailed Reports

Report On: Fetch issues



Recent Activity Analysis

The Cemu project has seen a notable uptick in issue reporting, with 249 open issues currently logged. Recent activity indicates a mix of critical bugs and feature requests, particularly surrounding graphical issues and controller compatibility. A recurring theme is the struggle with specific games like "Skylanders" and "Bayonetta 2," where users report significant graphical glitches or crashes. Additionally, many issues relate to controller input problems, especially for third-party devices.

Several issues highlight ongoing challenges with the emulator's handling of USB devices and motion controls, indicating potential areas for improvement in device compatibility and user experience. The community appears engaged, with many users contributing detailed reports and logs to aid in troubleshooting.

Issue Details

Most Recently Created Issues

  1. Issue #1397: Graphics Issues for Skylanders Trap Team

    • Priority: Bug
    • Status: Open
    • Created: 4 days ago
    • Update: N/A
  2. Issue #1396: Bayonetta 2 Chapter 15 Verse 2 Crash after defeating Temperantia

    • Priority: Bug
    • Status: Open
    • Created: 7 days ago
    • Update: N/A
  3. Issue #1391: "Remember window position" options break after macOS Sequoia update

    • Priority: Bug
    • Status: Open
    • Created: 12 days ago
    • Update: N/A
  4. Issue #1372: Amiibo in Mario Kart 8 don't work

    • Priority: Bug
    • Status: Open
    • Created: 28 days ago
    • Update: Edited 6 days ago
  5. Issue #1323: AMD Drivers 24.8.1 crash Breath of the Wild

    • Priority: Bug
    • Status: Open
    • Created: 63 days ago
    • Update: Edited 8 days ago

Most Recently Updated Issues

  1. Issue #1176: AMD 780M Vulkan renderer leads to corrupted textures

    • Priority: Bug
    • Status: Open
    • Created: 202 days ago
    • Update: Edited 1 day ago
  2. Issue #1380: Skylanders: Giants portal of power emulation

    • Priority: Bug
    • Status: Open
    • Created: 19 days ago
    • Update: Edited 15 days ago
  3. Issue #1379: After the starting cutscene in trap team and the loading screen for the first level, cemu crashes

    • Priority: Bug
    • Status: Open
    • Created: 21 days ago
    • Update: Edited 19 days ago
  4. Issue #1376: Splinter Cell: Blacklist PAL (Europe)

    • Priority: Bug
    • Status: Open
    • Created: 23 days ago
    • Update: Edited 22 days ago
  5. Issue #1358: Device selection issue in General settings -> Audio

    • Priority: Bug
    • Status: Open
    • Created: 35 days ago
    • Update: Edited recently

Analysis of Notable Issues

  • The issues surrounding graphical performance in "Skylanders Trap Team" (#1397) and "Bayonetta 2" (#1396) are particularly concerning as they indicate not only game-specific bugs but also potential underlying problems with the emulator's rendering capabilities, especially under varying hardware configurations.

  • The ongoing problems with amiibo functionality in "Mario Kart 8" (#1372) reflect broader compatibility challenges that could affect user satisfaction and engagement.

  • The AMD driver-related crash reported in issue #1323 highlights a significant external dependency on hardware drivers that can impact emulator stability, particularly for users with AMD graphics cards.

  • The repeated mentions of USB device compatibility issues suggest that the emulator's interaction with peripheral devices needs further refinement to enhance user experience across different setups.

Overall, while Cemu maintains an active development cycle and community engagement, addressing these critical issues will be essential for improving overall functionality and user satisfaction moving forward.

Report On: Fetch pull requests



Overview

The analysis of the pull requests (PRs) for the Cemu project reveals a dynamic and active development environment. The PRs range from significant feature additions and bug fixes to minor improvements and maintenance tasks. The community involvement is evident through contributions that address both user-reported issues and enhancements suggested by developers.

Summary of Pull Requests

Open Pull Requests

  1. PR #1392: Vulkan: Make scaling shaders compatible + fixes

    • Enhances Vulkan compatibility with built-in scaling shaders.
    • Significant for graphic pack developers due to changes in shader uniform handling.
  2. PR #1371: nsyshid: Emulate Dimensions Toypad

    • Implements emulation for the Lego Dimensions Toypad, expanding peripheral support.
    • Includes UI improvements for better user experience.
  3. PR #1353: Linux: Allow connecting Wiimotes via L2CAP

    • Adds support for connecting third-party Wiimotes on Linux via L2CAP.
    • Addresses pairing issues and improves controller connectivity.
  4. PR #1287: WIP: Metal backend

    • Introduces a Metal backend for macOS, aiming to improve performance and fix Vulkan-related issues.
    • Still a work in progress with several TODOs listed.
  5. PR #641: Large-scale PowerPC recompiler rework

    • A major overhaul of the PowerPC recompiler aimed at improving optimization and maintainability.
    • Long-term project with significant implications for performance across different architectures.
  6. PR #1370: imgui: Makes the window edges rounded

    • Aesthetic improvement to ImGui popups by adding rounded edges.
    • Minor change but contributes to a more modern UI look.
  7. PR #1316: Allow the appimage to update with appimageupdate

    • Enables delta updates for AppImage users, enhancing user convenience.
    • Addresses update management directly within the AppImage format.
  8. PR #1255: macOS: Apple Silicon support (interpreter only)

    • Adds initial support for Apple Silicon Macs, focusing on interpreter functionality.
    • Important step towards full compatibility with newer Mac hardware.

Closed Pull Requests

  1. PR #1390: Windows: Save icons to Cemu user data directory

    • Fixes issue with icon saving location on Windows, ensuring consistency across platforms.
  2. PR #1389: Added Retendo Network Service

    • Proposed addition of online play functionality via Retendo Network, not merged due to premature implementation.
  3. PR #1386: input: Fix crash when closing add controller dialog before search completes

    • Bug fix addressing crashes in the controller addition dialog under specific conditions.
  4. PR #1385: Make MEMPTR<T> a little more T*-like

    • Minor improvement to pointer-like behavior of MEMPTR<T>, enhancing usability in code.
  5. PR #1383: Add toggle button to VPAD show screen input

    • UI enhancement allowing direct toggling of the GamePad screen from settings, improving user control over display options.
  6. PR #1378: Vulkan: Protect against uniform var ringbuffer overflow

    • Critical fix preventing potential overflows in uniform variable ring buffers, addressing stability issues in Vulkan rendering.
  7. PR #1367: make this script more readable

    • Cosmetic changes aimed at improving script readability, not merged due to subjective nature of readability improvements.
  8. PR #1366: Add support for fmt 11

    • Adds support for new format version, ensuring compatibility with updated tools or libraries using fmt library.
  9. PR #1365: Update GeneralSettings2.cpp: Add "and size"

    • Minor text update in settings UI for clarity, not merged due to concerns about text length affecting UI layout.
  10. PR #1354: Migration from Vulkan-Headers to VCPKG + updating submodules

    • Attempted migration of dependencies to vcpkg for easier management, faced issues with certain library versions causing build errors.
  11. PR #1344: [IOSU/BOSS] Fix BOSS not honoring the proxy_server setting.

    • Fixes configuration issue where proxy settings were not respected by BOSS, improving network functionality under specific configurations.
  12. PR #1343: Various small changes

    • Collection of minor changes aimed at cleaning up code and resolving warnings, contributing to overall codebase health without altering functionality significantly.
  13. PR #1337: Merge Mainline into Fork

    • Attempted synchronization of a fork with mainline repository, closed without merging likely due to conflicts or redundancy with existing updates in mainline.
  14. PR #1324: nsysnet: Check for null timeout in select call

    • Bug fix preventing potential crashes when null timeout values were passed during network operations, enhancing stability in network handling code.
  15. PR #1319: appimage.sh: Do not copy libstdc++.so.6 to usr/lib/

    • Fixes issue with unnecessary copying of libraries during AppImage creation, streamlining build process and reducing potential conflicts on target systems.
  16. PR #1310: build: Better support for cross-compiling on ARM macOS.

    • Enhancements to build system supporting cross-compilation on ARM Macs, facilitating development and testing on newer Mac hardware without requiring native builds.
  17. PR #1306: Preparations for 2.1

    • Major preparatory work for upcoming version 2.1 release including changes in update distribution model and internal versioning scheme, setting stage for future development direction.
  18. PR #1304: Mouse

    • Proposed addition of mouse support, closed without merging possibly due to incomplete implementation or integration challenges with existing input handling systems.
  19. PR #1292: Update appimage.sh to support runtime libstdc++.so.6 loading

    • Addresses issue with bundled libraries potentially causing conflicts by utilizing runtime detection methods instead of static bundling during AppImage creation process.
  20. PR #1291: CI: fix macOS build

    • Fixes CI configuration issue on macOS where manual installation of Python was causing failures due to pre-installed versions conflicting with Homebrew updates.
  21. PR #1290: Vulkan: Add explicit synchronization on frame boundaries

    • Critical update restoring explicit synchronization mechanisms in Vulkan rendering pipeline addressing input lag issues reported by users under certain conditions.
  22. PR #1288: Add support for iterating directories in graphics pack content folders.

    • Enhances functionality of graphics packs by allowing games to dynamically discover new files added through graphics packs without requiring restarts or manual refreshes by users.
  23. PR #1283: clang-format: Put class braces on a new line

    • Minor formatting change aimed at adhering to coding style preferences regarding brace placement in class definitions, contributing to consistency across codebase formatting standards.
  24. PR #1282: git: unshallow vcpkg, shallow vulkan-headers and imgui

    • Adjustments to dependency management strategies optimizing build times while ensuring necessary components are fetched correctly without unnecessary depth during cloning operations.

Analysis of Pull Requests

The analysis reveals several key themes and trends within the Cemu project's development:

  1. Active Community Contribution: The presence of numerous PRs addressing both major features (like the Metal backend implementation) and minor tweaks (such as UI enhancements or bug fixes) indicates a vibrant community actively engaged in improving the emulator's functionality and user experience.

  2. Focus on Compatibility and Performance: Many PRs aim at enhancing compatibility with various hardware (e.g., Apple Silicon support) or improving performance through optimizations (e.g., explicit synchronization in Vulkan rendering). This focus aligns with the project's goal of providing a stable and efficient emulation experience across different platforms.

  3. Continuous Improvement and Maintenance: Regular updates to dependencies (as seen in PRs updating libraries like Curl or SDL2) and ongoing maintenance tasks (like fixing build issues or addressing configuration problems) highlight the project's commitment to maintaining a robust development environment alongside feature enhancements.

  4. User-Centric Enhancements: Several PRs directly address user feedback or reported issues (e.g., fixing crashes related to controller input dialogs or improving settings UI clarity). This responsiveness to user needs is crucial for building trust and satisfaction within the emulator's user base.

  5. Challenges with Cross-Platform Development: The project faces challenges related to cross-platform compatibility, as evidenced by discussions around differences in behavior between Windows and macOS versions or issues arising from platform-specific features like MoltenVK's limitations on macOS.

  6. Long-Term Development Goals: Some PRs reflect long-term goals such as reworking core components (like the PowerPC recompiler) or expanding peripheral support through emulation (as seen with toys-to-life peripherals). These efforts suggest a strategic direction towards enhancing the emulator's capabilities over time rather than just immediate fixes or features.

Overall, Cemu's development is characterized by active community involvement, a strong focus on enhancing compatibility and performance, continuous maintenance efforts, responsiveness to user feedback, challenges associated with cross-platform development, and strategic long-term goals aimed at expanding its capabilities further.

Report On: Fetch commits



Repo Commits Analysis

Development Team and Recent Activity

Team Members and Activities

  1. Exzap

    • Recent Activity: Implemented GetNfpReadOnlyInfo and fixed an issue with Amiibos not being detected in Mario Kart 8.
    • Collaborations: No specific collaborations noted in recent commits.
    • In Progress Work: No ongoing work reported.
  2. capitalistspz

    • Recent Activity: Made MEMPTR<T> more T*-like and saved icons to the Cemu user data directory.
    • Collaborations: No specific collaborations noted in recent commits.
    • In Progress Work: No ongoing work reported.
  3. goeiecool9999

    • Recent Activity: Fixed a crash when closing the add controller dialog before search completion, added an option to toggle the "show screen" button, and addressed several other bugs including crashes related to invalid command-line arguments and Vulkan renderer issues.
    • Collaborations: Worked on various issues, indicating collaboration with other team members on bug fixes.
    • In Progress Work: Ongoing work on multiple bug fixes and enhancements.
  4. 00cedke

    • Recent Activity: No recent commits; however, has one open pull request.
    • Collaborations: Not specified.
    • In Progress Work: One open pull request.
  5. deReeperJosh

    • Recent Activity: No recent commits; has one open pull request.
    • Collaborations: Not specified.
    • In Progress Work: One open pull request.
  6. Xphalnos

    • Recent Activity: No recent commits; has one open pull request.
    • Collaborations: Not specified.
    • In Progress Work: One open pull request.

Patterns, Themes, and Conclusions

  • The team is actively engaged in bug fixing and feature implementation, with a notable focus on improving user experience (e.g., fixing crashes and enhancing controller input).
  • Exzap is leading significant feature implementations while capitalistspz is contributing to code improvements and optimizations.
  • Goeiecool9999 shows a pattern of addressing multiple issues in a single commit, indicating a proactive approach to resolving bugs that affect user experience.
  • There are several open pull requests from team members who have not committed recently, suggesting ongoing discussions or pending reviews for their contributions.
  • Overall, the development team demonstrates a collaborative effort towards maintaining and enhancing the Cemu emulator, with a balanced distribution of tasks among members.