juxtapose: Attempt to fix juxtapose
Before Width: | Height: | Size: 1.2 MiB After Width: | Height: | Size: 1.4 MiB |
Before Width: | Height: | Size: 1.2 MiB After Width: | Height: | Size: 1.3 MiB |
Before Width: | Height: | Size: 60 KiB After Width: | Height: | Size: 85 KiB |
Before Width: | Height: | Size: 60 KiB After Width: | Height: | Size: 83 KiB |
Before Width: | Height: | Size: 473 KiB After Width: | Height: | Size: 605 KiB |
Before Width: | Height: | Size: 436 KiB After Width: | Height: | Size: 560 KiB |
|
@ -262,7 +262,7 @@ It was obvious the bug would be anything but simple to track down. However, a fa
|
|||
{{< figure src="pacman1.png"
|
||||
title="Honey, spacetime is warping again" >}}
|
||||
|
||||
But the question was, why? These two games are the only ones reported to exhibit this misalignment. Were they trying to workaround hardware quirks when doing transfers with the specific parameters? As you know by now, these questions can only be answered by testing, testing, and even more testing. Luckily for us, this hypothesis proved to be correct, as the console results did not match what Citra was doing. The solution was also surprisingly straightforward: take the output address and transform it the opposite way the game does when using the same display transfer parameters. This not only fixed rendering but also emulated the broken rendering that the hardware exhibits.The weirdness doesn't end for the case of the Tales of the Abyss. The game also triggered a bunch of edge cases in Citra's geometry shader implementation that made it crash in the first battle. At the time of writing these edge cases have already been hw-tested and implemented, which makes the game fully playable. We'll talk about those next time around though.
|
||||
But the question was, why? These two games are the only ones reported to exhibit this misalignment. Were they trying to workaround hardware quirks when doing transfers with the specific parameters? As you know by now, these questions can only be answered by testing, testing, and even more testing. Luckily for us, this hypothesis proved to be correct, as the console results did not match what Citra was doing. The solution was also surprisingly straightforward: take the output address and transform it the opposite way the game does when using the same display transfer parameters. This not only fixed rendering but also emulated the broken rendering that the hardware exhibits. Fun fact, the weirdness doesn't end for the case of the Tales of the Abyss. The game also triggered a bunch of edge cases in Citra's geometry shader implementation that made it crash in the first battle. At the time of writing these edge cases have already been hw-tested and implemented, which makes the game fully playable. We'll talk about those next time around though.
|
||||
|
||||
{{< sidebyside "image" ""
|
||||
"pacman2.png=Can I have a cookie too please?"
|
||||
|
|
Before Width: | Height: | Size: 1.3 MiB After Width: | Height: | Size: 1.4 MiB |
Before Width: | Height: | Size: 1.2 MiB After Width: | Height: | Size: 1.3 MiB |
Before Width: | Height: | Size: 207 KiB After Width: | Height: | Size: 436 KiB |
Before Width: | Height: | Size: 211 KiB After Width: | Height: | Size: 444 KiB |
Before Width: | Height: | Size: 1.4 MiB After Width: | Height: | Size: 1.6 MiB |
Before Width: | Height: | Size: 1.4 MiB After Width: | Height: | Size: 1.6 MiB |
Before Width: | Height: | Size: 714 KiB After Width: | Height: | Size: 763 KiB |
Before Width: | Height: | Size: 691 KiB After Width: | Height: | Size: 739 KiB |
|
@ -16,5 +16,5 @@
|
|||
"autumnburra": {"key": "autumnburra", "name": "autumnburra", "avatar": "https://community.citra-emu.org/user_avatar/community.citra-emu.org/autumnburra/120/273091_2.png"},
|
||||
"sleepingsnake": {"key": "sleepingsnake", "name": "SleepingSnake", "avatar": "https://community.citra-emu.org/user_avatar/community.citra-emu.org/sleepingsnake/120/123364_2.png"},
|
||||
"emufan_4568": {"key": "emufan_4568", "name": "GPUCode", "avatar": "https://community.citra-emu.org/user_avatar/community.citra-emu.org/emufan_4568/120/298317_2.png"},
|
||||
"PabloMK7": {"key": "PabloMK7", "name": "PabloMK7", "avatar": "https://community.citra-emu.org/user_avatar/community.citra-emu.org/citrabot/120/28_1.png"}
|
||||
"PabloMK7": {"key": "PabloMK7", "name": "PabloMK7", "avatar": "https://avatars.githubusercontent.com/u/10946643?v=4"}
|
||||
}
|
||||
|
|
After Width: | Height: | Size: 1.3 MiB |