diff --git a/hqflt/ntsc.c b/hqflt/ntsc.c index 8c1ca40db9..4e7d63f552 100644 --- a/hqflt/ntsc.c +++ b/hqflt/ntsc.c @@ -1,16 +1,19 @@ #include "ntsc.h" #include +#include void ntsc_filter(uint16_t * restrict out, const uint16_t * restrict in, int width, int height) { - static snes_ntsc_t *ntsc = NULL; static int phase = 0; - if (ntsc == NULL) + static snes_ntsc_t ntsc; + static bool inited = false; + + if (inited == false) { - ntsc = calloc(1, sizeof(snes_ntsc_t)); - snes_ntsc_init(ntsc, &snes_ntsc_composite); + snes_ntsc_init(&ntsc, &snes_ntsc_composite); + inited = true; } - snes_ntsc_blit(ntsc, in, width, phase, width, height, out, SNES_NTSC_OUT_WIDTH(width) * sizeof(uint16_t)); - phase = (phase + 1) % 4; + snes_ntsc_blit(&ntsc, in, width, phase, width, height, out, SNES_NTSC_OUT_WIDTH(width) * sizeof(uint16_t)); + phase ^= 1; }