MCPcopy Create free account
hub / github.com/PCSX2/pcsx2 / applyGameFixes

Method applyGameFixes

pcsx2/GameDatabase.cpp:443–575  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

441}
442
443void GameDatabaseSchema::GameEntry::applyGameFixes(Pcsx2Config& config, bool applyAuto) const
444{
445 // Only apply core game fixes if the user has enabled them.
446 if (!applyAuto)
447 Console.Warning("GameDB: Game Fixes are disabled");
448
449 if (eeRoundMode < FPRoundMode::MaxCount)
450 {
451 if (applyAuto)
452 {
453 Console.WriteLn("GameDB: Changing EE/FPU roundmode to %d [%s]", eeRoundMode, s_round_modes[static_cast<u8>(eeRoundMode)]);
454 config.Cpu.FPUFPCR.SetRoundMode(eeRoundMode);
455 }
456 else
457 {
458 Console.Warning("GameDB: Skipping changing EE/FPU roundmode to %d [%s]", eeRoundMode, s_round_modes[static_cast<u8>(eeRoundMode)]);
459 }
460 }
461
462 if (eeDivRoundMode < FPRoundMode::MaxCount)
463 {
464 if (applyAuto)
465 {
466 Console.WriteLn("GameDB: Changing EE/FPU divison roundmode to %d [%s]", eeRoundMode, s_round_modes[static_cast<u8>(eeDivRoundMode)]);
467 config.Cpu.FPUDivFPCR.SetRoundMode(eeDivRoundMode);
468 }
469 else
470 {
471 Console.Warning("GameDB: Skipping changing EE/FPU roundmode to %d [%s]", eeRoundMode, s_round_modes[static_cast<u8>(eeRoundMode)]);
472 }
473 }
474
475 if (vu0RoundMode < FPRoundMode::MaxCount)
476 {
477 if (applyAuto)
478 {
479 Console.WriteLn("GameDB: Changing VU0 roundmode to %d [%s]", vu0RoundMode, s_round_modes[static_cast<u8>(vu0RoundMode)]);
480 config.Cpu.VU0FPCR.SetRoundMode(vu0RoundMode);
481 }
482 else
483 {
484 Console.Warning("GameDB: Skipping changing VU0 roundmode to %d [%s]", vu0RoundMode, s_round_modes[static_cast<u8>(vu0RoundMode)]);
485 }
486 }
487
488 if (vu1RoundMode < FPRoundMode::MaxCount)
489 {
490 if (applyAuto)
491 {
492 Console.WriteLn("GameDB: Changing VU1 roundmode to %d [%s]", vu1RoundMode, s_round_modes[static_cast<u8>(vu1RoundMode)]);
493 config.Cpu.VU1FPCR.SetRoundMode(vu1RoundMode);
494 }
495 else
496 {
497 Console.Warning("GameDB: Skipping changing VU1 roundmode to %d [%s]", vu1RoundMode, s_round_modes[static_cast<u8>(vu1RoundMode)]);
498 }
499 }
500

Callers 1

ApplyGameFixesMethod · 0.80

Calls 5

enum_castFunction · 0.85
vtlb_Alloc_PpmapFunction · 0.85
WarningMethod · 0.45
WriteLnMethod · 0.45
SetMethod · 0.45

Tested by

no test coverage detected