Как вы рассчитываете движение? Если вы точно рассчитываете дельта-время (время с последнего тика) с помощью QueryPerformanceCounter и рассчитываете движение на основе этого, у вас все будет хорошо. Таким образом, расстояние, которое каждый объект перемещает за тик, должно быть deltatime * speed.
Мое лучшее предположение, что вы этого не делаете, и вместо этого он основан на частоте кадров, и частота кадров изменяется при открытии Firefox (по любой причине). Было бы полезно показать ваш код.
Еще одна вещь - QueryPerformanceCounter / Frequency может быть разной для разных ядер - является ли ваше приложение многопоточным? Если это так, открытие Firefox может привести к тому, что Windows переключит ваше приложение на выполнение другого ядра, где QueryPerformanceCounter / Frequency отличаются. Вы должны всегда вызывать их с одного и того же процессорного ядра (установить привязку к процессору в потоке, который их вызывает).