Some games are showing frame flickering, e.g. Pokémon games when only
the text at the bottom of the screen is updating. GB/GBC games are
apparently especially affected, presumably due to the extra border.
These two games have some strange rendering behaviors and therefore can't use the generic bloom actions.
These games have several bloom EFB copies and they draw that on top of an already rendered game. After doing that, they render some other draw calls to "fixup" the bloom that it drew to effectively remove it. This isn't uncommon but there is one special thing these games do...they use a RAM EFB copy for the 'fixup'. This means when playing with high IR, the game will look blurry in specific parts of the screen where the game was attempting to fix the copy!
Bloom removal has addressed this by removing all the draw calls related to the bloom, including the fixup draws. The user then needs to turn on 'EFB Copy To Texture Only' for the best visuals (De Blob 2 in particular is broken without this) as the default settings.
Bloom blurred will need special attention too but Dolphin doesn't currently have enough functionality to handle it.
Add a mod for all games with bloom targets that blurs the bloom based on resolution using a custom material. The shader exposes bloom brightness and the amount of spread through uniforms (not exposed in the UI yet).
The original shader logic was done by TryTwo. This shader was reworked for graphics mods and cleaned up slightly.
Co-authored-by: TryTwo <taolas@gmail.com>
INI files for both known regions of _Mario Kart Arcade GP 2_ (Triforce)
have been added to the `GameSettings` directory:
| Game ID | Region | Revision Date |
| ------- | ------ | ------------------- |
| GNLE82 | NTSC-U | 2007/02/07 02:47:24 |
| GNLJ82 | NTSC-J | 2007/02/06 20:29:25 |
The files contain Action Replay and Gecko cheat codes. Some of the cheat
codes have been sourced from the Internet; others have been developed by
the author of this change.
> [!IMPORTANT]
> Triforce games may have had multiple revisions for a given game region
> after the original release, and Dolphin cannot distinguish them at
> this time. Cheat codes are developed for one revision only, and cannot
> work with other revisions.
>
> For this reason, every cheat code name is provided with a prefix that
> states the revision date of the target game revision. It will be up to
> the user to enable the cheat codes for their correct game revision and
> region. The revision date for _Mario Kart Arcade GP 2_ games can be
> seen in the SegaBoot menu, under the **ENTER GAME TEST > OTHERS**
> screen.
> [!NOTE]
> Prior to issue #14470, the game ID for the NTSC-U region was
> incorrectly assigned the game ID of the NTSC-J region due to an issue
> in how the region flag in boot.id files was treated. This issue
> blocked the addition of the INI files until the issue was resolved (a
> region mismatch would cause fatal errors if cheat codes for the wrong
> version were enabled in Dolphin).
> [!CAUTION]
> There have been seen game dumps in the wild that, even though their
> real region is NTSC-U, the region flag in their `boot.id` file is
> `0x02` (NTSC-J), instead of `0x0E` (NTSC-U).
This is fixed by setting Texture Cache Accuracy to Safe.
Affected titles:
- R2F Freddi Fish: Kelp Seed Mystery
- RDL Spy Fox in Dry Cereal
- RJQ Pajama Sam: Don't Fear the Dark
TimeSplitters: Future Perfect is crashing if page table fastmem is
enabled. The reason hasn't been analyzed yet. For the time being, let's
use GameSettings to bring back the old behavior of not having page table
fastmem.
Fixes https://bugs.dolphin-emu.org/issues/14000.
Set suggested aspect ratio to 4:3 due to dolphin incorrectly setting it to 16:9 automatically.
Apply suggestion from @jordan-woyak
Co-authored-by: Jordan Woyak <jordan.woyak@gmail.com>
This PR provides formatting updates to Sonic Mega Collection.
All regions:
* Formatting fixes.
* Updated to follow my code naming convention for Sega games.
Added control scheme to codes.
Split .ini files based on Rev 0/1.
Added controller mapping instructions.
Added other regions and removed redundant lines.
Added Grass Deterioration cheats.
Changed wording regarding Right Stick variant.
Removed credits from RA Verified list.
Update ApprovedInis.json from PatchAllowlist test.
Updated approved list hash to match AchievementManager.
Attempted to fix the approved hash list again.
Update approved INI list and PatchAllowlist verification data
This PR provides 60 FPS code additions to Sonic and the Secret Rings & Sonic and the Black Knight.
All regions:
* Formatting fixes.
NTSC-U/PAL:
* Added 60 FPS code, coming from the Dolphin wiki.
* Followed my code naming convention for Sega games.
This PR provides 60 FPS code additions to NiGHTS: Journey of Dreams.
NTSC-U/PAL/NTSC-J:
* Added 60 FPS code, coming from the Dolphin wiki.
* Followed my code naming convention for Sega games.
* The wiki says that the code is for NTSC-U but it's actually region free. It's been confirmed via testing.
* The wiki also says that a certain part in the final level softlocks, but that's actually not true and can be bypassed. An explanation has been included with the code.
I've gone through all relevant settings for Rogue Squadron II and III
and overhauled their game INI files. Each setting is explained with a
comment.
Some settings I chose not to include:
* EFB to RAM only seems to affect certain fadeouts in Rogue Squadron II.
Without it, the affected fadeouts are replaced by a pure black screen.
I don't think this is important enough to warrant the performance hit.
* As I was unable to find anything Rogue Squadron III needs EFB to RAM
for, I also didn't find anything it needs DeferEFBCopies disabled for.
* I didn't find anything EFBEmulateFormatChanges was needed for in
either game.
* Enabling EFB access makes the ship engine glow visible in Rogue
Squadron III, but this effect is minor enough that you probably won't
notice it's missing unless you know it's supposed to be there. Since
this is Dolphin's heaviest game, let's give users the choice.
* I was considering forcing XFB to RAM for Rogue Squadron III to make
fadeouts render properly instead of going from magenta to black, since
enabling XFB to RAM doesn't really hurt performance when you're
already enabling EFB to RAM. But then I was unable to find a reason
why we should enable EFB to RAM for this game.
Tested in RS2 and RS3. The RS3 demo disc settings are copied from the
RS3 settings and haven't been tested by me.
The patches rearrange some branching to insert a call to VIWaitForRetrace in the main game loop.
This allows ImmediateXFB to work properly so it is no longer forced off by the game ini.
These were original calculated by @EndlesslyFlowering, and they've not came up with a new version that does chromatic adaptation (D93 to D65 white point) better, hence should be more accurate.
These are already in use in RenoDX:
283b859021/src/shaders/color.hlsl (L97C1-L103C49)
This is a follow-up to 0f1ecf41f9. Our policy is to use three-character
game INIs for settings unless a game has multiple releases and the
setting shouldn't be applied to all of them.
SAHE69.ini was simply renamed to SAH.ini. RL6E69.ini was deleted
entirely, because RL6.ini already exists and contains the same setting.
Allow loading a custom font by naming it OSD_Font.ttf and placing the file in the User/Load folder, to load that font instead. Useful for future testing.
`MaxAnisotropy = 0` is no longer the safest setting because it forces 1x
even if the game asks for more.
`ForceFiltering` was replaced by `ForceTextureFiltering` in
afe9d5b098. The one remaining occurrence
was merged later.
`ForceTextureFiltering` is an int option and shouldn't be set to False.
Just Dance 3, Just Dance: Best of, and Just Dance: Greatest Hits look
fine on AMD GPUs without manual texture sampling. On Nvidia GPUs they
have a single stripe that I think doesn't warrant forcing manual texture
sampling for everyone.
The NES games I tried worked fine with anisotropic filtering, it just
doesn't do anything.
Various games don't actually have any issue with anisotropic filtering
as long as it's not forced. The only game I could find that actually
requires the default aniso setting is Spider-Man: Shattered Dimensions.
Boogie SuperStar works fine with any texture filtering setting.