Skip to content
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

1.2.78 #369

Merged
merged 62 commits into from
Dec 19, 2024
Merged

1.2.78 #369

merged 62 commits into from
Dec 19, 2024

Conversation

GreemDev
Copy link
Member

@GreemDev GreemDev commented Dec 10, 2024

Significant changes include:
JIT Sparse Function Table (original work by @riperiperi, work repurposed & PR opened by @LotP1),
Custom Refresh Rate (original work by @jcm93, work repurposed & PR opened by @KeatonTheBot),
A fix for the min/max/close controls being too wide on Windows with the new title bar (by @Daninator1),
And a prod.keys installer helper (by @nicola02nb).

Merged PRs in this release (in the order they were merged):
#280, #282, #285, #258, #281, #250, #309, #310, #238, #313, #311, #95, #302, #257, #233, #329, #319, #330, #331, #339, #340, #352, #353, #332, #343, #342, #363, #356, #371, #338, #381, #383

UI

  • Adapt accent color to the system theme
    • Works flawlessly on Windows, and has support on Linux depending on your system configuration.
  • Moved shader compilation hint, current GPU, and graphics backend to the right side of the status bar, next to the firmware version.
  • Moved to a new icon made by @matthew-5pl in New macOS icon #381, which is now used everywhere
  • Removed the "Game:" prefix in front of the FPS counter.
  • Fix missing total DLC count in the Manage DLC window.
  • When clicking the Check for Updates button, it will allow you to click a button to open the changelog of the current version.
    • When an update is incoming this button is also present, to show you what the new version has.
  • Fix Github & Discord icons getting cuttoff in the About window (UI: Fix icons getting cutoff in the About window #310)
  • The about window now has my name and my name only under the maintainer section, and moved the other names previously there below it to "Formerly Maintained By"
    • This was done to clear up confusion that the OG maintainers are involved, when they are not.
  • Added FAQ, Setup, and LDN guides to the "Help" menu dropdown (UI: Add faq, setup and multiplayer guides to the Help dropdown #383)
  • RPC:
    • Added the following games:
      • Diablo 3 Eternal Collection
      • TSUKIHIME -A piece of blue glass moon-

I18N

HLE

Nerd Zone

  • Collapsed XCIFileTrimmerLog implementations into one static class with 2 inner classes.
  • Added firmware prefix when the firmware application is loaded
    • Additionally allowed providing custom application names & versions, namely for firmware applications.

ARMeilleure

Vulkan

GreemDev and others added 30 commits November 19, 2024 10:22
This is an implementation of the TPIDR2_EL0 register. There may be more
potential use-cases for this register not included in this PR, but this
implements the use-case seen in SuperTuxKart.
This should make it so that any changes made to ldn and documentation
related files should be auto-labeled
This makes it so that instead of the files you download being
`sdl2-ryujinx-headless` they are now `nogui-ryujinx`in the release (and
canary) artifacts
This should hopefully make it clearer whether or not you're using
canary.

Changelog:
- Changed github workflows to have "canary" in the zip files
- Added `App.FullAppName` in the about section, so that it's clear in
there too
- Changed log name for canary builds to
`Ryujinx_Canary_{version}_{DateTime.Now:yyyy-MM-dd_HH-mm-ss}.log`
(normal builds should still be
"Ryujinx_{version}_{DateTime.Now:yyyy-MM-dd_HH-mm-ss}.log)
Hello any fellow developers that may be reading this. Whenever you add
any new locales to `en_US.json`, please make sure to add them to the
rest of the locale files. I will not always be there to add them myself.
More up to date build of the JIT Sparse PR for continued development.
JIT Sparse Function Table was originally developed by riperiperi for the
original Ryujinx project, and decreased the amount of layers in the
Function Table structure, to decrease lookup times at the cost of
slightly higher RAM usage.
This PR rebalances the JIT Sparse Function Table to be a bit more RAM
intensive, but faster in workloads where the JIT Function Table is a
bottleneck. Faster RAM will see a bigger impact and slower RAM (DDR3 and
potentially slow DDR4) will see a slight performance decrease.
This PR also implements a base for a PPTC profile system that could
allow for PPTC with ExeFS mods enabled in the future.
This PR also potentially fixes a strange issue where Avalonia would time
out in some rare instances, e.g. when running ExeFS mods with TotK and a
strange controller configuration.

---------

Co-authored-by: Evan Husted <[email protected]>
Rebased @jcm93's refreshinterval branch:
https://github.com/jcm93/Ryujinx/tree/refreshinterval

The option is placed under System/Hacks. Disabled, it's the default
Ryujinx behavior. Enabled, the behavior is shown in the attached
screenshots. If a framerate is too high or low, you can adjust the value
where you normally toggle VSync on and off. It will also cycle through
the default on/off toggles.

Also, in order to reduce clutter, I made an adjustment to remove the
target FPS and only show the percentage.

---------

Co-authored-by: jcm <[email protected]>
This allows the "Mii Edit Applet" dropdown to be localized ( I already
went ahead and localized French )
This allows the Enter key to be bound to a button when using the
Avalonia UI.
A couple of games have random crashing with the JIT Sparse Ftable changes, and it seems to have been caused by an insufficient int size returned by `AddressTableLevel#GetValue(ulong address)`.
It was 32 bits (Int32), but the GiantBlock (which is the current address table impl) uses potentially 36 bits for the first level.
#331)

These changes allow Mario Kart Live: Home Circuit (v2.0.0) to boot into
menus. Kart functionality has not been implemented and will not work.

Version 1.0.0 is currently unsupported due to unimplemented ARM
registers. I plan on addressing this issue at a later date.


### Here is a list of the implemented and stubbed services in this PR:
#### Implemented:
Ldn.Lp2p.IServiceCreator: 0 (CreateNetworkService)
Ldn.Lp2p.IServiceCreator: 8 (CreateNetworkServiceMonitor)
Ldn.Lp2p.ISfService: 0 (Initialize)
Ldn.Lp2p.ISfServiceMonitor: 0 (Initialize)
Ldn.Lp2p.ISfServiceMonitor: 256 (AttachNetworkInterfaceStateChangeEvent)
Ldn.Lp2p.ISfServiceMonitor: 328 (AttachJoinEvent)
#### Stubbed:
Ldn.Lp2p.ISfService: 768 (CreateGroup)
Ldn.Lp2p.ISfService: 1536 (SendToOtherGroup)
Ldn.Lp2p.ISfService: 1544 (RecvFromOtherGroup)
Ldn.Lp2p.ISfServiceMonitor: 288 (GetGroupInfo)
Ldn.Lp2p.ISfServiceMonitor: 296 (GetGroupInfo2)
Ldn.Lp2p.ISfServiceMonitor: 312 (GetIpConfig)
This adds the missing Cabinet Applet, which allows for formatting
Amiibos and changing their names.
GreemDev and others added 6 commits December 8, 2024 13:04
This adds a table making it clearer what artifacts are needed for what
platform.

Nogui builds are not provided in the table as per Greem's request.

MAINTAINER EDIT: reasoning for above is due to the Headless in Avalonia
PR; nogui builds are going away.

Tested for both canary and release builds and everything works fine:


[Canary](https://github.com/GabCoolDude/Ryujinx-Canary/releases/tag/1.2.6)
[Release](https://github.com/GabCoolDude/Ryujinx/releases/tag/1.2.2)

For release, the damn appimage messed everything up, but thanks to
macOS, you can still test if it works.
I made some small corrections and translated the lines that didn’t have
translations.
@github-actions github-actions bot added audio Affects Audio playback during emulation cpu An issue with ARMeilleure, the JIT, or Hypervisor gpu Affects GPU emulation graphics-backend:opengl Affects the OpenGL Graphics backend graphics-backend:vulkan Affects the Vulkan Graphics backend gui Affects the Avalonia UI or translations. horizon Affects the Horizon OS HLE components. infra Updates to dependencies ldn Affects the LDN functionality labels Dec 10, 2024
@Ammar-Sadaoui
Copy link

Is the steam deck considered as SLOW DDR4 for energy consumption optimization in the hardware?

@LotP1
Copy link
Contributor

LotP1 commented Dec 13, 2024

Is the steam deck considered as SLOW DDR4 for energy consumption optimization in the hardware?

I would consider DDR4 2133 MHz and below as slow ram.
The Steamdeck should not be negatively impacted by this update.

@GreemDev GreemDev marked this pull request as ready for review December 19, 2024 06:24
@GreemDev GreemDev merged commit f07a973 into release Dec 19, 2024
21 checks passed
@GreemDev GreemDev changed the title 1.2.77 1.2.78 Dec 19, 2024
@Hackjjang
Copy link
Contributor

#398 (comment)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
audio Affects Audio playback during emulation cpu An issue with ARMeilleure, the JIT, or Hypervisor gpu Affects GPU emulation graphics-backend:opengl Affects the OpenGL Graphics backend graphics-backend:vulkan Affects the Vulkan Graphics backend gui Affects the Avalonia UI or translations. horizon Affects the Horizon OS HLE components. infra Updates to dependencies ldn Affects the LDN functionality
Projects
None yet
Development

Successfully merging this pull request may close these issues.