Skip to content

Commit

Permalink
[Part 2] Fixed the palette reset when using an NTSC filter (#331).
Browse files Browse the repository at this point in the history
  • Loading branch information
punesemu committed Nov 5, 2023
1 parent fbb789a commit b9a8cf5
Show file tree
Hide file tree
Showing 3 changed files with 14 additions and 14 deletions.
2 changes: 1 addition & 1 deletion src/gui/wdgPaletteEditor.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -468,7 +468,7 @@ void wdgPaletteEditor::set_internal_color(int index, const QColor &qrgb, bool up
rgb->b = qrgb.blue();

if (update_palette) {
ntsc_set(nullptr, !(cfg->filter == NTSC_FILTER), 0, (BYTE *)palette_RGB.noswap, nullptr, (BYTE *)palette_RGB.noswap);
ntsc_set(nullptr, (cfg->filter != NTSC_FILTER), 0, (BYTE *)palette_RGB.noswap, nullptr, (BYTE *)palette_RGB.noswap);
gfx_palette_update();
}
}
Expand Down
4 changes: 2 additions & 2 deletions src/video/filters/ntsc.c
Original file line number Diff line number Diff line change
Expand Up @@ -102,7 +102,7 @@ void ntsc_rgb_modifier(nes_ntsc_t *ntsc, BYTE *palette_out, SWORD min, SWORD red
WORD i = 0;

// prima ottengo la paletta monocromatica
ntsc_set(ntsc, TRUE, PALETTE_MONO, NULL, NULL, palette_out);
ntsc_set(ntsc, (cfg->filter != NTSC_FILTER), PALETTE_MONO, NULL, NULL, palette_out);
// quindi la modifico
for (i = 0; i < NUM_COLORS; i++, pRGB++) {
// rosso
Expand All @@ -111,7 +111,7 @@ void ntsc_rgb_modifier(nes_ntsc_t *ntsc, BYTE *palette_out, SWORD min, SWORD red
change_color(&pRGB->b, min, blue);
}
// ed infine utilizzo la nuova
ntsc_set(ntsc, TRUE, 0, NULL, palette_out, palette_out);
ntsc_set(ntsc, (cfg->filter != NTSC_FILTER), 0, NULL, palette_out, palette_out);
}
void ntsc_filter_parameters_changed(void) {
ntsc_set(NULL, FALSE, 0, NULL, (BYTE *)palette_RGB.noswap, NULL);
Expand Down
22 changes: 11 additions & 11 deletions src/video/gfx.c
Original file line number Diff line number Diff line change
Expand Up @@ -331,23 +331,23 @@ void gfx_set_screen(BYTE scale, DBWORD filter, DBWORD shader, BYTE fullscreen, B
palette = PALETTE_SONY;
}
} else {
ntsc_set(NULL, TRUE, 0, (BYTE *)palette_base_file, NULL, (BYTE *)palette_RGB.noswap);
ntsc_set(NULL, (cfg->filter != NTSC_FILTER), 0, (BYTE *)palette_base_file, NULL, (BYTE *)palette_RGB.noswap);
}
}
}

switch (palette) {
case PALETTE_PAL:
ntsc_set(NULL, TRUE, 0, (BYTE *)palette_base_pal, NULL, (BYTE *)palette_RGB.noswap);
ntsc_set(NULL, (cfg->filter != NTSC_FILTER), 0, (BYTE *)palette_base_pal, NULL, (BYTE *)palette_RGB.noswap);
break;
case PALETTE_NTSC:
ntsc_set(NULL, TRUE, 0, NULL, NULL, (BYTE *)palette_RGB.noswap);
ntsc_set(NULL, (cfg->filter != NTSC_FILTER), 0, NULL, NULL, (BYTE *)palette_RGB.noswap);
break;
case PALETTE_FRBX_NOSTALGIA:
ntsc_set(NULL, TRUE, 0, (BYTE *)palette_firebrandx_nostalgia_FBX, NULL, (BYTE *)palette_RGB.noswap);
ntsc_set(NULL, (cfg->filter != NTSC_FILTER), 0, (BYTE *)palette_firebrandx_nostalgia_FBX, NULL, (BYTE *)palette_RGB.noswap);
break;
case PALETTE_FRBX_YUV:
ntsc_set(NULL, TRUE, 0, (BYTE *)palette_firebrandx_YUV_v3, NULL, (BYTE *)palette_RGB.noswap);
ntsc_set(NULL, (cfg->filter != NTSC_FILTER), 0, (BYTE *)palette_firebrandx_YUV_v3, NULL, (BYTE *)palette_RGB.noswap);
break;
case PALETTE_GREEN:
ntsc_rgb_modifier(NULL, (BYTE *)palette_RGB.noswap, 0x00, -0x20, 0x20, -0x20);
Expand All @@ -358,12 +358,12 @@ void gfx_set_screen(BYTE scale, DBWORD filter, DBWORD shader, BYTE fullscreen, B
palette_RGB.noswap[i].g = (((i >> 4) & 0x03) * 255 / 3);
palette_RGB.noswap[i].b = (((i >> 6) & 0x07) * 255 / 7);
}
ntsc_set(NULL, TRUE, 0, NULL, (BYTE *)palette_RGB.noswap, (BYTE *)palette_RGB.noswap);
ntsc_set(NULL, (cfg->filter != NTSC_FILTER), 0, NULL, (BYTE *)palette_RGB.noswap, (BYTE *)palette_RGB.noswap);
break;
case PALETTE_FILE:
break;
default:
ntsc_set(NULL, TRUE, palette, NULL, NULL, (BYTE *)palette_RGB.noswap);
ntsc_set(NULL, (cfg->filter != NTSC_FILTER), palette, NULL, NULL, (BYTE *)palette_RGB.noswap);
break;
}

Expand All @@ -373,16 +373,16 @@ void gfx_set_screen(BYTE scale, DBWORD filter, DBWORD shader, BYTE fullscreen, B
case RP2C03G:
break;
case RP2C04:
ntsc_set(NULL, TRUE, 0, (BYTE *)palette_RP2C04_0001, NULL, (BYTE *)palette_RGB.noswap);
ntsc_set(NULL, (cfg->filter != NTSC_FILTER), 0, (BYTE *)palette_RP2C04_0001, NULL, (BYTE *)palette_RGB.noswap);
break;
case RP2C04_0002:
ntsc_set(NULL, TRUE, 0, (BYTE *)palette_RP2C04_0002, NULL, (BYTE *)palette_RGB.noswap);
ntsc_set(NULL, (cfg->filter != NTSC_FILTER), 0, (BYTE *)palette_RP2C04_0002, NULL, (BYTE *)palette_RGB.noswap);
break;
case RP2C04_0003:
ntsc_set(NULL, TRUE, 0, (BYTE *)palette_RP2C04_0003, NULL, (BYTE *)palette_RGB.noswap);
ntsc_set(NULL, (cfg->filter != NTSC_FILTER), 0, (BYTE *)palette_RP2C04_0003, NULL, (BYTE *)palette_RGB.noswap);
break;
case RP2C04_0004:
ntsc_set(NULL, TRUE, 0, (BYTE *)palette_RP2C04_0004, NULL, (BYTE *)palette_RGB.noswap);
ntsc_set(NULL, (cfg->filter != NTSC_FILTER), 0, (BYTE *)palette_RP2C04_0004, NULL, (BYTE *)palette_RGB.noswap);
break;
case RC2C03B:
case RC2C03C:
Expand Down

0 comments on commit b9a8cf5

Please sign in to comment.