Taggarkiv: nvidia

Dolphin Progress Report: August and September 2019

Earlier this month, an interesting development within the Wii reverse engineering scene was announced as Fullmetal5 revealed that they had hacked the Wii Mini via a Bluetooth exploit. This bookends a flurry of a Wii Mini hacking, including rigorous hardware modding by DeadlyFoez. You may be wondering, "Wait, wasn't the Wii hacked over a decade ago?". That's true, but the Wii Mini stubbornly remained unhacked all the way into 2019.

This resiliency came from the Wii Mini's cut down nature: it physically lacks the attack vectors that were used against the original Wii. In total, the Wii Mini was missing GameCube support, with no GameCube controller ports or Memory Card slots, lacked internet and browser support, and they completely removed the SD card slot. With so few attack surfaces, hackers have had to get inventive. DeadlyFoez created "FrankenWiis", mixing Wii Mini hardware and standard Wii hardware, to create exploit options and dump the Wii Mini firmware. This was as far as anyone could go, until Fullmetal5 found the holy grail: an exploit in the standard Wii Mini configuration, through the Bluetooth stack! This exploit completely opens the Wii Mini, allowing for arbitrary code execution to dump and/or load data over the Wii Mini's USB ports. The exploit is currently not public, but when it is released, users will be able to run homebrew on the Wii Mini just like any other Wii console, without any hardware mods. If you're interested at all in the Wii Mini and its many differences, feel free to checkout some of DeadlyFoez's videos of their efforts. It's a very strange little machine.

Update: During the writing of this article, the exploit was released!.

With the Wii Mini Menu dumped, the main question for us was... does it run in Dolphin?

The Wii Mini Wii Menu running in Dolphin!
Here is a normal Wii Menu for comparison. The Wii Mini lacks the Wii Shop, all internet channels, and the SD Card.

The answer is yes! In addition to that, Fullmetal5 also adjusted Dolphin to correctly detect Mini Wii Menu versions. While there isn't much practical use for running this cut down Wii Menu in Dolphin, it was exciting to finally see one of the last unhacked pieces of Wii hardware fall. We'd like to wholeheartedly thank everyone involved for their efforts toward Wii hacking and preservation.

With that out of the way, we have a few changes of our own to go through. While the end of the summer was a bit slow, there are still some essential fixes for several popular games and finally EFB Access is working correctly on Adreno devices... at least in Vulkan. Let's jump into August and September's Notable Changes without further delay!

Fortsätt läs

Hacked Up: The Vertex Streaming Hack

Update: There is an issue with the Nvidia drivers that kept buffer storage from being utilized properly on Windows: they do not report the driver version. Since the Linux version of the driver reports its version correctly, the Dolphin devs assumed that the nvidia drivers would report it and used a version check to make sure ARB_buffer_storage was only utilized on drivers that actually support it. Because of this issue, even the latest drivers that support the function failed the version check and Dolphin didn't use buffer_storage on Windows. And thanks to an unrelated bug discovered later, the lack of buffer_storage wasn't detected in the initial testing. As of 4.0-722 the version check was removed and buffer storage is confirmed to be working correctly.

Unfortunately, that version check was there for a reason. Some driver versions tell Dolphin that they support buffer_storage, but actually don't. Any user caught in that situation will encounter a blackscreen. If you do, update your drivers.



One of the constant struggles in modern emulation is the battle between performance and accuracy. Throughout Dolphin's history, developers have added various tricks to get more performance out of computers - one of them being the Vertex Streaming Hack, formerly known as Hacked Buffer Upload. It drastically improves OpenGL performance on Nvidia GPUs. However, as of 4.0-615, the Vertex Streaming Hack has been removed from Dolphin.

Fortsätt läs

Du kan fortsätta diskussionen i forumtråden för denna artikel.

Dolphin Emulator and OpenGL drivers - Hall of Fame/Shame

Dolphin Emulator and OpenGL drivers - Hall of Fame/Shame

In light of the recent announcements by NVIDIA and AMD in support of Linux for their graphics drivers, we would like to share with the world some of the experience we had developing our open source project, Dolphin, a GameCube and Wii emulator for Windows, Linux, Mac and recently Android.

At the beginning of this year, after the successful release of Dolphin 3.5, Markus Wick (degasus) and Ryan Houdek (Sonicadvance1) started working on a rewrite of Dolphin's OpenGL backend in order to be compliant to the OpenGL ES 3.0 standard. While this rewrite was needed for other reasons (it provides the foundations for very cool optimizations), compatibility with mobile devices and the future Android port of the emulator (now in beta) was one of the key goals. This rewrite was merged into the main Dolphin codebase a few months back and started to be used by tens of thousands of Dolphin users, either on OS X and Linux where it is the only viable graphics backend, or on Windows where it is available alongside our D3D11 graphics backend.

Sadly, using recent, advanced OpenGL features also meant we got to discover how bad some graphics drivers actually are at doing their job. It turns out very few applications use some parts of the OpenGL standard we need to rely on to accurately emulate a GameCube GPU. More than that, on Android, OpenGL ES 3.0 support is extremely recent and only a couple applications on the Play Store use ES 3.0 features.

Here is basically our hall of shame of graphics drivers, sorted by the number of issues we found, how hard it is to report issues to the company and how many bugs were actually fixed.

Fortsätt läs

Du kan fortsätta diskussionen i forumtråden för denna artikel.