Menu ▾ ▴

#440 Per-SID chip models (Sid2Model and up), resolving the FIXME in c64/psid.c

v3.x
open
nobody
None
new Feature
5 days ago
7 days ago
No

This lets each extra SID have its own model, so mixed 6581/8580 setups can be emulated: a PSID v3/v4 header asking for e.g. 8580/6581/8580, or a dual SID board like the one in feature request 391 (https://sourceforge.net/p/vice-emu/feature-requests/391/). It resolves "FIXME: we cant have mixed SID versions yet" in c64/psid.c.

  • Sid2Model..Sid10Model, -sid2model..-sid10model: -1 (default) = same as SidModel, 0 = 6581, 1 = 8580, 2 = 8580D. Existing configurations behave as before.
  • The engines get the chip number at open(); reSID, reSID-fp and fastsid set the model per chip (fastsid keeps one set of combined waveform tables per model).
  • Snapshots store each extra SID's model (SID module 1.6); older snapshots load with -1.
  • The PSID loader sets each SID's model; an unknown one follows the first.
  • SDL and Gtk3: a model selector per extra SID. Gtk3 shows the filter settings of every model in use (both when mixed).
  • Also fixes: restoring a snapshot with three or more SIDs set SID #2 to the last SID's address.

Tested with reSID, reSID-fp and fastsid by reading back each SID (model detection resp. combined waveforms), plus snapshots and both UIs.

Diff against trunk r46281, apply with patch -p1 in the trunk directory.

This patch was written with an AI coding assistant (Claude); I have reviewed and tested it.

1 Attachments

Discussion

  • gpz

    gpz - 6 days ago

    Just quickly skimmed over it for now - one thing i saw is the "array" notation for some things in comments, please don't do that, options and resources should always be completely listed (just like other options) - that makes sure the scripts for checking them keep working

     
  • Enver Haase-Beer

    Thanks, fixed in the attached v2: Sid2Model to Sid10Model and -sid2model to -sid10model are now listed one by one, in vice.texi and in the $VICERES list in sidsoundwidget.c. doc/checkdoc.mak no longer reports them as undocumented (it did with v1). Same base (r46281), nothing else changed.

     

Log in to post a comment.