diff --git a/site/content/entry/yuzu-progress-report-aug-2020/index.md b/site/content/entry/yuzu-progress-report-aug-2020/index.md index 0d7dd94c..63975310 100644 --- a/site/content/entry/yuzu-progress-report-aug-2020/index.md +++ b/site/content/entry/yuzu-progress-report-aug-2020/index.md @@ -6,7 +6,7 @@ coauthor = "GoldenX86 & Morph" forum = 302337 +++ -[Yahallo](https://www.youtube.com/watch?v=s28a3nVHCLo) yuz-ers! We hope you are doing well. This monthly report has a few critical topics to cover. Yet another major rewrite is done, some graphical bugs are fixed, the UI is refined a bit more, and ghosts from our past are removed. Here we go! +[Yahallo](https://www.youtube.com/watch?v=s28a3nVHCLo) yuz-ers! We hope you are doing well. This monthly report has a few critical topics to cover. Yet another major rewrite is done, some graphical bugs are fixed, the UI is further refined, and ghosts from our past are expelled. Here we go! @@ -14,13 +14,13 @@ forum = 302337 ### Part 1 - Input Rewrite -Let's start with the biggest change. One of yuzu's weakest aspects was its input support. It was riddled with bugs, not very intuitive, and lacked several critical features. Earlier this year, [jroweboy](https://github.com/jroweboy) and [Rei](https://github.com/Its-Rei) decided to start working on what ended up being a rewrite of the whole input UI and its internal working dubbed Project Aphrodite. +Let's start with the biggest change. One of yuzu's weakest aspects was its input support. It was riddled with bugs, not very intuitive, and lacked several critical features. Earlier this year, [jroweboy](https://github.com/jroweboy) and [Rei](https://github.com/Its-Rei) decided to start working on what would end up a complete rewrite of the input UI and its internal workings, dubbed Project Aphrodite. {{< imgs "./oldinput.png| Never gonna give you up" >}} -As you can see in the following images, the original draft lacked some of the features we have working right now and some that we plan to add in the future. No code is ever completed, better ideas and new implementations can always be achieved. So that's exactly what happened, Rei continued to iterate on the concept design that is inspired by [RPCS3's](https://github.com/RPCS3/rpcs3) controller UI. +As you can see in the following images, the original draft lacked some of the features we have working right now and some that we plan to add in the future. No code is ever complete, better ideas and new implementations can always be achieved. So that's exactly what happened, Rei continued to iterate on the concept design that is inspired by [RPCS3's](https://github.com/RPCS3/rpcs3) controller UI. {{< imgs "./concept.png| The first draft, in all its glory" @@ -32,7 +32,7 @@ With this concept in mind, jroweboy implemented an automapping feature which cor "./automap.mp4| Finally, no more spending hours mapping controls!" >}} -Since jroweboy's departure from emulator development, [Morph](https://github.com/Morph1984) continued his legacy and picked up where he left off not wanting to have all this work go to waste. With renewed hope, both he and [Rei](https://github.com/Its-Rei) are continuously finding and fixing bugs and refining the UI as much as possible to achieve the best user experience across all three UI themes present in yuzu, which culminated into the UI we have today. +Since jroweboy's departure from emulator development, [Morph](https://github.com/Morph1984) continued his legacy and picked up where he left off, not wanting to have all this work go to waste. With renewed hope, both Morph and Rei have taken the reins and are continuously refining the UI to achieve the best user experience possible. Their efforts have culminated in the UI we have today. {{< single-title-imgs "The fruits of our labor, the triforce of themes is complete!" @@ -41,13 +41,13 @@ Since jroweboy's departure from emulator development, [Morph](https://github.com "./midnightblue.png" >}} -The user experience would not be complete unless a [long standing issue where updating controllers in the UI will not update them in game](https://github.com/yuzu-emu/yuzu/issues/2906) is fixed. Knowing this, Morph decided to find out what is causing this issue and fix it along with the UI changes. With some guidance from the shark [ogniK](https://github.com/ogniK5377), he discovered that 1. The frontend was not signalling to the backend when a controller changes configuration and 2. `StyleSetChangedEvents` were not being signalled on a controller change. By fixing these 2 issues, he managed to fix input issues in a wide array of games and allowing users to change their controller and input devices while in game without needing to restart yuzu. +The user experience would not be complete unless a [long standing issue where updating controllers in the UI will not update them in game](https://github.com/yuzu-emu/yuzu/issues/2906) is fixed. Knowing this, Morph decided to find out what is causing this issue and fix it along with the UI changes. With some guidance from the shark [ogniK](https://github.com/ogniK5377), he discovered that 1. The frontend was not signalling to the backend when a controller changes configuration and 2. `StyleSetChangedEvents` were not being signalled on a controller change. By fixing these two issues, he managed to fix input issues in a wide array of games and allowed users to change their controller and input devices while in game without needing to restart yuzu. {{< imgs "./controllerselect.mp4| Smash players rejoice!" >}} -The games that demonstrated the most benefit from these fixes are Pokemon Let's Go: Pikachu and Pokemon Let's Go: Eevee as single joycons can now be properly detected in game, bringing us one step closer to emulation accuracy. +The games that demonstrated the most benefit from these fixes are `Pokemon Let's Go: Pikachu` and `Pokemon Let's Go: Eevee`, as single joycons can now be properly detected in game, bringing us one step closer to hardware accuracy. {{< imgs "./plgjoycon.png| Professor Oak! Input is now in working order!" @@ -55,7 +55,7 @@ The games that demonstrated the most benefit from these fixes are Pokemon Let's ### Part 2 - Controller Applet -Morph began on [Part 2](https://github.com/yuzu-emu/yuzu/pull/4597) knowing that yuzu lacked an implementation of a Controller Applet which is crucial for a lot of multiplayer games such as Super Mario Maker 2, Kirby Star Allies, Hyrule Warriors: Definitive Edition and many more. It had previously been [attempted](https://github.com/yuzu-emu/yuzu/pull/1940) by [DarkLordZach](https://github.com/DarkLordZach) but was riddled with issues due to the immature input implementation at the time. Therefore, Morph decided that it was time to implement it after gaining knowledge of and fixing HID in [Part 1](https://github.com/yuzu-emu/yuzu/pull/4530). +Morph began on [Part 2](https://github.com/yuzu-emu/yuzu/pull/4597) knowing that yuzu lacked an implementation of a Controller Applet, which is crucial for a lot of multiplayer games such as Super Mario Maker 2, Kirby Star Allies, Hyrule Warriors: Definitive Edition and many more. It had previously been [attempted](https://github.com/yuzu-emu/yuzu/pull/1940) by [DarkLordZach](https://github.com/DarkLordZach) but was riddled with issues due to the immature input implementation at the time. Therefore, Morph decided that it was time to implement it after gaining knowledge of and fixing HID in [Part 1](https://github.com/yuzu-emu/yuzu/pull/4530). While Morph was completing the backend implementation of the applet, Rei was designing the UI that was inspired by DarkLordZach's initial implementation, with an error box showing all the issues with the current controller configuration as shown. @@ -69,7 +69,7 @@ After taking a look at this first concept, they decided that it wasn't very intu "./secondapplet.png| The one that started it all" >}} -As you can see, this was much closer to the design we have now, but was lacking some features such as the number of supported controllers, led pattern, border color, and explain text. +As you can see, this was much closer to the design we have now, but was lacking some features such as the number of supported controllers, LED pattern, border color, and explain text. Wanting to get as close to the Switch's design as possible, Morph implemented these features one by one, and the frontend UI was adapted by Rei to include these features, bringing us to the final design we have now. {{< single-title-imgs @@ -110,11 +110,11 @@ Below are comparisons between the Nintendo Switch's and yuzu's Controller Applet There is always room for improvement, keep your eyes peeled for future additions and features! -As we cannot fit in all the changes present in both parts, for our more tech savvy users, you can find all the changes for them through the following links: [[Mjölnir Part 1]](https://github.com/yuzu-emu/yuzu/pull/4530) [[Mjölnir Part 2]](https://github.com/yuzu-emu/yuzu/pull/4597) +As we cannot fit in all the changes present in both parts, our more tech savvy users can read about all the changes in the following PRs: [[Mjölnir Part 1,]](https://github.com/yuzu-emu/yuzu/pull/4530) [[Mjölnir Part 2.]](https://github.com/yuzu-emu/yuzu/pull/4597) ## Bugfixes and improvements -[Khronos](https://www.khronos.org/) recently added the new `VK_EXT_extended_dynamic_state` extension to the Vulkan API, and driver support is slowly being completed by the vendors. As to be expected with fresh support for this extension, you can expect stuff to be in a *non-perfect* state, or as we like to say, "Expect Dragons". AMD recently added support for this extension in the 20.8.3 Windows driver but part of it is glitched, resulting in graphical errors in games like `Super Mario Odyssey`. [Rodrigo](https://github.com/ReinUsesLisp) temporarily solved this by [blacklisting the extension on the AMD Windows drivers until it is fixed](https://github.com/yuzu-emu/yuzu/pull/4599). Intel doesn't support `VK_EXT_extended_dynamic_state` at the time of writing this, and Nvidia had already fixed their issues with the extension. +[Khronos](https://www.khronos.org/) recently added the new `VK_EXT_extended_dynamic_state` extension to the Vulkan API, and driver support is slowly being completed by the vendors. Per the norm with newly supported extensions, you can expect stuff to be in a *non-perfect* state, or as we like to say, "Expect Dragons." AMD recently added support for this extension in the 20.8.3 Windows driver, but part of it is glitched, resulting in graphical errors in games like `Super Mario Odyssey`. [Rodrigo](https://github.com/ReinUsesLisp) temporarily solved this by [blacklisting the extension on the AMD Windows drivers until it is fixed](https://github.com/yuzu-emu/yuzu/pull/4599). Intel doesn't support `VK_EXT_extended_dynamic_state` at the time of writing this, and Nvidia had already fixed their issues with the extension. {{< single-title-imgs "Mario stared into the abyss, and the abyss stared back (Super Mario Odyssey)" @@ -122,7 +122,7 @@ As we cannot fit in all the changes present in both parts, for our more tech sav "./smofix.png" >}} -Continuing with `VK_EXT_extended_dynamic_state`, a glitch affecting, among others, `Super Smash Bros. Ultimate` was discovered when using this new extension. Attack sprites were missing during gameplay. [Rodrigo](https://github.com/ReinUsesLisp) [solved the issue on all compatible drivers.](https://github.com/yuzu-emu/yuzu/pull/4555). +Continuing with `VK_EXT_extended_dynamic_state`, a glitch affecting `Super Smash Bros. Ultimate`, and others, was discovered when using this new extension. Attack sprites were missing during gameplay, but [Rodrigo](https://github.com/ReinUsesLisp) was able to [solve the issue on all compatible drivers](https://github.com/yuzu-emu/yuzu/pull/4555). {{< single-title-imgs "The Master Sword can't just look like a regular sword (Super Smash Bros. Ultimate)" @@ -130,7 +130,7 @@ Continuing with `VK_EXT_extended_dynamic_state`, a glitch affecting, among other "./smashfix.mp4" >}} -Thumbnail pictures in in-game save slots were a black rectangle for most games up until now. By [fixing block linear copies](https://github.com/yuzu-emu/yuzu/pull/4453), [Rodrigo](https://github.com/ReinUsesLisp) added better immersion by avoiding loading up a wrong save or course by mistake in games such as `The Legend of Zelda: Breath of the Wild` and `Super Mario Maker 2`. +Thumbnail pictures in in-game save slots were a black rectangle for most games up until now. By [fixing block linear copies](https://github.com/yuzu-emu/yuzu/pull/4453), [Rodrigo](https://github.com/ReinUsesLisp) prevented users from loading up the wrong save or course by mistake in games such as `The Legend of Zelda: Breath of the Wild` and `Super Mario Maker 2`. {{< single-title-imgs "Ohh, this one was my good course! (Super Mario Maker 2)" @@ -142,9 +142,9 @@ Thumbnail pictures in in-game save slots were a black rectangle for most games u Up until now, CPUs lacking the FMA instruction set had to run generic code as fallback. After a lot of work, [Merry](https://github.com/MerryMage) added [optimizations intended for CPUs lacking the `FMA instruction set`](https://github.com/yuzu-emu/yuzu/pull/4541). -What this means is that users with CPUs from the AMD Phenom II series or older, Intel 3rd generation Core-i series or older, and all Pentium, Celeron and Atom CPUs can now select the "Unsafe" setting and see major performance improvements in almost all games. Don't bother to try this setting on CPUs that have FMA as it will not improve your performance in that case. +This means that users with CPUs from the AMD Phenom II series or older, Intel 3rd generation Core-i series or older, and all Pentium, Celeron and Atom CPUs can now select the "Unsafe" setting and see major performance improvements in almost all games. Don't bother to try this setting on CPUs that have FMA, as it will not improve your performance in that case. -Due to being a less precise alternative, expect Dragons. +However, due to being a less precise alternative, expect emulation inaccuracies if you decide to enable it. Here be dragons, as they say. {{< imgs "./fma.png| You can find it here" @@ -152,7 +152,7 @@ Due to being a less precise alternative, expect Dragons. ## UI Changes -As part of the input rewrite, [Rei](https://github.com/Its-Rei) fixed several consistency bugs affecting the `Midnight Blue` UI theme. You can see the results bellow. +As part of the input rewrite, [Rei](https://github.com/Its-Rei) fixed several consistency bugs affecting the `Midnight Blue` UI theme. You can see the results below. {{< single-title-imgs "Input window fixes, before (left) and after (right)" @@ -196,12 +196,14 @@ Our users reported that some checkboxes were duplicated after the addition of Vu ## Future Projects -[epicboy](https://github.com/ameerj) is working on an universal, GPGPU accelerated method to decode ASTC textures. We shall hear more of this after the Texture Cache rewrite is finished. +[epicboy](https://github.com/ameerj) is working on a universal, GPGPU (General-Purpose GPU) accelerated method to decode ASTC textures. We shall hear more of this after the Texture Cache rewrite is finished. Whispers of more audio changes have been heard, and a certain shark will be responsible for this. [Devs uh... find a way.](https://www.youtube.com/watch?v=D8zlUUrFK-M) +That's all for now folks! See you again in the September progress report! +