VSync BENCHMARKs and avoid AdvanceRandom in tests (#3867)

This commit is contained in:
Martin Griffin 2023-12-30 10:10:21 +00:00 committed by GitHub
parent 245026353d
commit 515aa367bf
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 5 additions and 1 deletions

View file

@ -165,6 +165,9 @@ struct Benchmark { s32 ticks; };
static inline void BenchmarkStart(void)
{
gTestRunnerState.inBenchmark = TRUE;
// Wait for a v-blank so that comparing two benchmarks is not affected
// by the v-count (different numbers of IRQs may run).
VBlankIntrWait();
REG_TM3CNT = (TIMER_ENABLE | TIMER_64CLK) << 16;
}

View file

@ -23,6 +23,7 @@
#include "intro.h"
#include "main.h"
#include "trainer_hill.h"
#include "test_runner.h"
#include "constants/rgb.h"
static void VBlankIntr(void);
@ -372,7 +373,7 @@ static void VBlankIntr(void)
m4aSoundMain();
TryReceiveLinkBattleData();
if (!gMain.inBattle || !(gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_FRONTIER | BATTLE_TYPE_RECORDED)))
if (!gTestRunnerEnabled && (!gMain.inBattle || !(gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_FRONTIER | BATTLE_TYPE_RECORDED))))
Random();
UpdateWirelessStatusIndicatorSprite();