I can't make a screenshot because I have no capture card. But for anyone that wants to see what I'm talking about I've made a test.
(1) I've compiled SNES with Phase Accurate enabled. To do this only requires two small changes.
(a) In sys_top.v line 563 you must change:
Code: Select all
.mode ({1'b1,scaler_flt ? 3'd4 : 3'd0}),
to
Code: Select all
.mode ({1'b1,scaler_flt ? 3'd6 : 3'd0}),
(b) In ascal.vhd line 422 you set the value to true
Code: Select all
SIGNAL o_phacc : boolean := false; -- <TEST> False=Delta True=Phase acc.
to
Code: Select all
SIGNAL o_phacc : boolean := true; -- <TEST> False=Delta True=Phase acc.
And then Phase Acc mode should be enabled.
To see the benefit of PhaseAcc clearly, you can download the zip file here:
https://drive.google.com/open?id=1ndp_9 ... 6EBhx7ktzG
It contains a "normal" compile of the SNES core and a "PhaseAcc" version of the SNES core.
You need to use the copy of the mister binary in the zip as well and set
in your mister.ini
Then if you set the filter to nomal_scanlines_100 (or others but this one is the easiest to see) you can see that the PhaseAcc version of the core scales without the problems in the standard version.
BTW, Sorgelig, I've modifed mister main so that vscale_integer works like this:
vscale_integer=0 Just as before. Free Scaling
vscale_integer=1 Just as before. Locked to integers 4.0, 5.0,...
vscale_integer=2 Locked to half values 4.0, 4.5, 5.0,...
vscale_integer=3 Locked to thirds 4.0,4.33, 4.67,...
up to vscale_integer=5 but 4 is probably the last useful value.
It's only a two line change in user_io.cpp and a one line change in cfg.cpp.
Would you want a pulll request for this (just the mister vscale_integer change)? The combination of half values and PhaseAcc has large benefits for scanline filters.