
You'll need the Delphi 10 BPLs

EDIT: Added some missing files.
Moderator: General Mods
This might be a bug in the SNES9x source. I'll probably fix it so that it matches with ZSNES.Qyzbud wrote:Although the toggle checkboxes display the flag status correctly in vSNES, they seem to open up in ZSNES with inverted values. (Those which should be disabled by default are enabled, and vice versa)
The "????" values don't have a name in the SNES9x source. They are set to a 'magic' value of $FCFE if it's the first code in the list, otherwise to zero. I guess ZSNES relies on that, so I change these values when the values are encoded into the binary CHT structure.Qyzbud wrote:If you copy a cheat table to the clipboard, then back into vSNES, and copy the cheat table to the clipboard again, the values with the heading '????' all show up as 0000. Pasting the cheat table back into vSNES after this will cause the toggle flags' status to appear reversed in vSNES, but as you probably guessed, this means that the flags show up just right in ZSNES! The resetting of the '????' values seems to have no negative effect, which is good news.
Btw, do you have any idea what the '????' values do? ... Or are they headed with a series of question marks for good reason.
Code: Select all
Procedure tPPU.Write(Const Address : Word; Const Value : Byte);
Const BG_LatchMask = Bits5 SHL 3;
// ...
Var i : Byte;
tmp : Integer;
Begin
Regs[Address] := Value;
Case Address of
// ...
$210D: Begin // scrolling registers:
With BG[BG1].ScrollPos do Begin // BG1 x
tBytes4(x)[0] := (BG_LatchData AND BG_LatchMask) OR tBytes4(x)[1];
tBytes4(x)[1] := Value; // 0 = low byte; 1 = high byte
x := x AND Bits11;
BG_LatchData := Value;
End;
With Mode7.ScrollPos do Begin // Mode7 x
tBytes4(x)[0] := Mode7.LatchData;
tBytes4(x)[1] := Value;
x := x AND Bits13;
Mode7.LatchData := Value;
End;
End;
// ...
End;
End;