Log inRegister an accountBrowse CSDbHelp & documentationFacts & StatisticsThe forumsAvailable RSS-feeds on CSDbSupport CSDb Commodore 64 Scene Database
You are not logged in 
CSDb User Forums


Forums > C64 Composing > Configurable addresses in multi sid tunes please
2019-08-31 22:03
Frantic

Registered: Mar 2003
Posts: 1378
Configurable addresses in multi sid tunes please

Hi guys!

If you want to make a fellow scener a tiny bit happier than he already is:

In multi sid tunes (2 sid chips or more) it would be super nice if more people started to add the possibility to configure the adress of the extra sid chips before the tune starts playing. After all, if you play multi sid tunes on a real machine it may not be easy to change the addressing of the extra sids you have. Sometimes there are jumpers which allow a bit of configuration (such as switching between de00 and df00, or between d4xx/d5xx or something). However, in many cases the configuration options are limited. For example, in my 3sid-machine, the sid chips are located at $d400, $d420 and $d500 and that's that. I can't change it. No jumpers or stuff like that. :)

I understand that most people use VICE or various cross platform music editors, or emulated+configurable "sid chips" like the ones in the 1541U2, when they deal with multi sid stuff, but still.. the real machine with real hardware sid chips is always the main target, right? ;)

Thanks in advance! ;)
 
... 5 posts hidden. Click here to view all posts....
 
2019-09-01 13:30
4mat

Registered: May 2010
Posts: 51
Having written all that, in the source for Instinct there's a routine called 'patch_sids' that will hard patch multi-sid tracks to do their register writes to an area in memory. Then you can write directly to your sids from there instead. That way you don't get 'cross-talk' between sids being read/written to which can happen. (took a long time figuring that out when doing FMX)

Instinct
2019-09-01 16:45
tlr

Registered: Sep 2003
Posts: 1234
@4mat: both are very neat solutions, although I don't really fancy altering the write order/timing. As you say, for older tunes it can fail, sometimes completely.

I don't think it's plausible that every musician doing a stereo/multi sid will be adding these approaches manually. In the ideal case the actual multi SID music routine should provide a way to set the base address.

An alternative could be a sidreloc type tool that allows relocating the sid base (or making it runtime relocatable).
2019-09-02 15:50
Frantic

Registered: Mar 2003
Posts: 1378
Also, I guess in the end there aren't that many players/editors that support multiple sids, so I guess it would be fairly simple to just make custom solutions for each of them.

Which ones are there actually? SidWizard, GoatTracker, CheeseCutter, defMON, Threesome... Did I miss any?

I guess most of the released multi sid tunes are created in SidWizard or GoatTracker...?
2019-09-02 17:45
FunFun

Registered: Dec 2018
Posts: 4
Quote: I wrote a wrapper for someone that did a soft read/write of the sid registers to re-map multi sid songs where needed. Obviously that was doing the writes in an order I chose, but seeing as most multisid tunes are probably doing them all at once I guess it would be accurate enough. (only seems to be old drivers that do register re-writes inside the frame pass)

I probably don't have time to write it as a tool but that's really all that's needed isn't it? I've had to patch drivers directly for musicdisks to do sid select and it's way more of a pain.


I have also written a tool that tries to detect SIDs in C64 using TLR's method.

SIDdetector V1.0

I did a video on the subject.
https://www.youtube.com/watch?v=q3ssYPXpFZk&t=335s

Most SID are in GoatTracker or CheesCutter and the player could be changed to handle runtime change of SID second address. The problem main problem is that ARMSID, FPGASid, SSU, SIDFX, MIXSID or UltiSID are not configured in the same way. All uses different tools for doing this.
2019-09-03 08:55
Frantic

Registered: Mar 2003
Posts: 1378
Yep, nice tool you've got there. The question was not about configuring the sids to change their adress to adapt to where the player expects the sid to be though, but to allow for the players to adapt to where the sids are, so — in relation to the question — I don't see why it would be a problem that different kinds of emulated sids are configured in different ways.
2019-09-03 20:54
FunFun

Registered: Dec 2018
Posts: 4
So you want to able to change the second SID address in in the cheescutter player and goattracker player.

Looking at the goattracker the second sid is hardcoded in the player, you could scan for known sequences and patch the .sid file.

It should be possible to identify the player and modify SIDplay64 to be able to patch the .sid file.
2019-09-04 04:50
ChristopherJam

Registered: Aug 2004
Posts: 955
The idea is to modify all of the multi sid players to get them to auto-detect at runtime where the sid chips are.
2019-09-04 09:35
iAN CooG

Registered: May 2002
Posts: 2404
<Post edited by iAN CooG on 4/9-2019 10:08>

Even by identifying the player one should scan for patterns and not patch specific offsets because very few players have a fixed structure, for example GoatTracker and Cheese cutter tunes are dynamically created depending on the features selected in the tracker, and the version of the tracker of course.
Each release should have a selector and its own patcher with an array of offsets manually found in the tune, like in Icony [2sid] or Ramdrive [2sid]
2019-09-04 10:00
ChristopherJam

Registered: Aug 2004
Posts: 955
…of course, patching might not even be a matter of changing a few addresses in the source.

I could well understand a player author just using an index register to access six or nine voices within the d4xx range; modifying such code to support chips that have addresses outside that would be nontrivial.
2019-09-04 14:44
Frantic

Registered: Mar 2003
Posts: 1378
Yep, it can be non-trivial in some cases, at least in principle. Also, it would be cool if the players supported such autodetection out of the box (I'm thinking about implementing this myself in defMON or its currently developed successor), but..

My main point was actually something like this:

If you're skilled enough to code a quite nice player screen (which seems to be common for those multi sid tunes), it wouldn't typically be so hard to implement some custom patching of relevant addresses in the player code. Either to allow the user to select adress(es) manually, or through some auto-detection routine. That's all. :)
Previous - 1 | 2 - Next
RefreshSubscribe to this thread:

You need to be logged in to post in the forum.

Search the forum:
Search   for   in  
All times are CET.
Search CSDb
Advanced
Users Online
iAN CooG/HVSC
Mythus/Delysid
ThunderBlade/BLiSS
c0zmo
JackAsser/Booze Design
Pitcher/Fairlight
Harry Potthead
ΛΛdZ
CopAss/Leader
St0rmfr0nt/ExCeSs
Digger/Elysium
Street Tuff/TRSi
Guests online: 362
Top Demos
1 Uncensored  (9.7)
2 Unboxed  (9.7)
3 Coma Light 13  (9.7)
4 Edge of Disgrace  (9.7)
5 Comaland 100%  (9.6)
6 The Shores of Reflec..  (9.6)
7 Lunatico  (9.6)
8 C=Bit 18  (9.5)
9 Wonderland XII  (9.5)
10 Old Men in Used Cars  (9.5)
Top onefile Demos
1 Dawnfall V1.1  (9.5)
2 Smile to the Sky  (9.5)
3 Pandemoniac Part 5 o..  (9.5)
4 The Tuneful Eight [u..  (9.5)
5 Crystal Gazer  (9.5)
6 Daah, Those Acid Pil..  (9.5)
7 Rewind  (9.5)
8 Instinct  (9.5)
9 Innervasion  (9.4)
10 Bad Boy  (9.4)
Top Groups
1 PriorArt  (9.7)
2 Fossil  (9.6)
3 Performers  (9.6)
4 Oxyron  (9.5)
5 Censor Design  (9.4)
Top Logo Graphicians
1 Pal  (9.5)
2 Mermaid  (9.2)
3 Yazoo  (9.1)
4 Elko  (9.1)
5 Compyx  (9.0)

Home - Disclaimer
Copyright © No Name 2001-2019
Page generated in: 0.057 sec.