This was causing the game to output thousands of FPS during the loading screen when it would run uncapped if Immediately Present XFB was enabled.
Please see Redmine 13447 for reference.
This is another one of those games that has an optional screenshot
feature where the images end up all black if you have Store EFB Copies
to Texture Only turned on. Like for other such games, let's not force
Store EFB Copies to Texture Only off, since it's a large performance
impact for a feature most players won't use.
There's one wrinkle here. As part of teaching the player how to take
screenshots, the game forces the player to take a screenshot before it
lets them progress in the story. However, the game doesn't care what's
in the screenshot, so you can progress just fine even if Store EFB
Copies to Texture Only is turned on. I personally tested it.
For buttons and some character icons the game loads palleted PNGs and
tiles the pallet indices directly into C4 textures but fails to take
into account that PNG and C4 use opposite nibble orders. This causes
adjacent pixel columns to be swapped, see issue 13370.
Also disable Immediate XFB for the Japanese release. It has the same
black screen and flickering issues as the other regions.
These games seem to constantly have unused vertices, and this is worst shown in the Shadow Pokemon purification cutscene. The Shadow Pokemon purification cutscene is even worse on XD with forced single core mode, as instead of having FPS dropping with VPS staying 60ish, it will drop both, resulting in audio stuttering. Turning on CPUCall seems to have a 7/8 reduction of draw calls for that cutscene (~800 -> ~100), doubling performance. Many other areas of the game seem to benefit from this setting too, having some kind of performance boost.
See https://bugs.dolphin-emu.org/issues/13248. This is needed for the menus to work properly (not run at 1FPS and render incorrectly). Additionally, immediate XFB causes flickering.
Cubivore had an old issue before Hybrid XFB was merged involving the screen shifting left. Immediate XFB actually brings the issue back. It should be disabled for this title.
These games greatly benefit from CPU Culling, and there isn't much reason
not to just blanket enable it for all users. There is no case where you'd
want it disabled.
A call to GXCopyDisp(), made once before the title screen for no
apparent purpose, is causing heap corruption, but it isn't observed on
real hardware thanks to the data cache. Skipping the call works too,
preventing a crash on the main menu.
This patch substitutes field rendering with full frame rendering in the
NTSC and NTSC-J versions of Eggmania. This allows Dolphin's
"Force Progressive" hack to work with this title.
Codes originally from Swiss, written by Extrems.
This game follows the anti-pattern of calling memset on a buffer in the
midst of being DMA copied to ARAM, then calling a DVD read function that
effectively cancels the memset with dcbi instructions. Dolphin does not
emulate dcache for performance reasons, so this patch removes the
offending memset call.
Patches are included for two regions and are enabled by default.
https://bugs.dolphin-emu.org/issues/12759
- Given proper credits for the NTSC-U "Bypass Metafortress" patch (SUKE01.ini)
- Ported the "Bypass Metafortress" patch to the PAL version (SUKP01.ini)
This game has stale icache values in the logs during certain
loadscreens, and after disabling them I was able to play through the
entire game, with one crash that may have been related to savestates and
memory cards since during that loadscreen it said the memory card did
not match.
This does cause invalid reads to be spit out during parts of the game,
but you can safely skip them. Enabling MMU seems to surpress the
invalid reads without side-effects, but the aforementioned
memcard/savestate crash was with MMU on.
For unknown reasons, a Gecko Code on the Wiki for Rayman Arena that was
meant to help with widescreen patches. This doesn't actually change
anything about the game unless you enable Dolphin's built-in widescreen
hack, where it will cause enemies and whatnot to render on the edges of
the screen. This is because it patches out the culling function in the
game, which coincidentally is also the cause of the hang in Dolphin.
With "Store EFB Copies to Texture Only" set to True (the default setting), areas of Excite Truck appear darker than on console. For example, in Sylvan Glen under the Bronze cup, all of the trees appear very dark, nearly black. On console, this does not occur.
Start of the race on Dolphin: https://youtu.be/KjJ-55lwFkE?t=817
Start of the race on Console: https://youtu.be/0W9blwA8AG4?t=699
Setting EFBToTextureEnable = False fixes this issue and does not appear to introduce any performance impacts, so I am recommending that this be disabled by default for this game.
Apparently MMU is no longer needed in these titles. All 3 booted and
played into gameplay in the latest builds without issues, and disabling
MMU results in a very slight, but noticeable performance boost.
At least on Android, SyncGPU has really bad performance compared to
single core. It's less stable too - I get fatal GPU desyncs in
Pokémon XD using the default settings.
This Pull Request updates N64 INIs based on what I know about various
behaviors since the last time we updated it. This should result in more
sane settings for Mario Tennis and Super Smash Bros. while still
preventing the out of memory crash due to the tremendous amounts of EFB
copies.