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


Forums > C64 Coding > Playing SIDs on the 64
2005-08-29 07:22
Sasq

Registered: Apr 2004
Posts: 156
Playing SIDs on the 64

So, anyone has some insights on how to make sid player as compatible as possible?

This is what I'm currently doing, and it works reasonably well:

- Put the player on $100-$180 (seems to be a bit more safe than $400). Of course it's best to use the reloc info in the SID if it exists, but often it doesn't.

- Clear all SID-regs before each subtune, except #$F -> $D418.

- Check the high nibble of the init adress, and set banking accordingly.


Things that doesnt work:

Some obviously broken SIDs, like Mikey who has its Init under ROM but still puts #$37 in $01. Playsid64 handles this though, not sure how you do that without actually checking the code for such things.

RSID. What I first thought was a good thing turns out to be stupid, since many of them put the player in the INIT and there is no way of changing song without resetting (or maybe use NMI to break it ?)
Also the ones that do install an interrupt and return like they're supposed to often break when you try to switch songs.


Thoughts, comments, anything to add?




 
... 14 posts hidden. Click here to view all posts....
 
2005-08-29 21:54
Sasq

Registered: Apr 2004
Posts: 156
Thats not really true. Athena has a 0 but still puts code at 100-130. That may count as the stack and thus never included in what is considered "free" but its a good place to put the player in most cases. When all songs where converted to the new format, how did you know what to put in reloc? Maybe there should have been a value that meant UNKNOWN.

I thought I gave pretty good descrtiption on the problems with those Galway songs :) Well I can put together all I find and send a mail later.
2005-08-30 07:03
Inge

Registered: Nov 2003
Posts: 144
Combat School, Arkanoid, Game Over and Microprose Soccer use digis, and the problem is that the digiroutine goes in an infinite loop. There is a simple solution (I have thought about implementing such a thing in my rips), and that is to add a keychecker to the routine. SIDPlay won't (hopefully) do anything with it, but a real C64 will.

Mikie and Athena are probably a matter of "doing it right", and shouldn't be too difficult to fix.

When it comes to the reloc-values, the person who creates the PSID/RSID-file is responsible for checking out if there's any need to set them. When the reloc-values are 0,0, the music-routine is expected to write to nothing else than its own mem-area (ie the mem it uses when it loads), the zero-page area, and the SID-chip. RSIDs can also be expected to write to 0314/15, 0318/19 and FFFA/FB, FFFE/FF.

Inge/HVSC
2005-08-30 07:07
Inge

Registered: Nov 2003
Posts: 144
@Sasq: You are free to report any problems you encounter with the tunes. We will try to fix the tunes if it's doable.

Inge/HVSC
2005-08-30 10:46
Graham
Account closed

Registered: Dec 2002
Posts: 990
@Inge: What about those "real" PlaySID-like registers? It would be cool to listen to those tunes without scrambled SID channels on C64 too, and the sfx sound sampler is offering that.
2005-08-30 11:02
Sasq

Registered: Apr 2004
Posts: 156
Quote:
When it comes to the reloc-values, the person who creates the PSID/RSID-file is responsible for checking out if there's any need to set them.


Didnt you batch convert to V2 format? Somehow I doubt someone sat down and checked 20,000+ songs (or however may it was back then) and recorded free pages... :)

Another way to solve the RSID issue is to flag songs that take over the CPU, and make sure they allow an interrupt to be run.
This would mean you need two routines again; INIT that just sets up the song to be played and flags the play routine to stop playing, and PLAY that "busy-plays" the current song but watches for song change flagged by INIT routine.

2005-08-30 11:36
SIDWAVE
Account closed

Registered: Apr 2002
Posts: 2238
There's a lot of things that could be different, if there was another fileformat, and another sidplay.

If you want to help make anything, the person to write is Simon White.

We are living still with the limits of the original PSID format. Only way you can change that, is to work on a whole new technology.
2005-08-31 11:05
Steppe

Registered: Jan 2002
Posts: 1510
@Sasq: Indeed we had our mighty tools run over the whole HVSC back then, created a memory usage map of every tune and compared these maps with the loadrange. Based upon this the reloc fields were set.

@Graham: Do you think it's really worth tweaking 1500+ tunes to take advantage of a piece of hardware that probably isn't that wide spread?
2005-08-31 14:08
Graham
Account closed

Registered: Dec 2002
Posts: 990
@Steppe: Samples + SID voices sound horrible, so yeps, i think it is worth it. PlaySID registers was an attempt to do this, but they sucked because they didn't reflect anything which existed in the real world.
2005-08-31 15:31
Steppe

Registered: Jan 2002
Posts: 1510
Hm, the more I think about it the more interesting it gets. It would probably just require inserting some ST(A|X|Y) to the usual sampler memory area in PSID specific rips. The original PSID specific writes don't hurt a real C64, but the question is, would the additional sampler specific writes hurt Sidplay1/2 or would they just be ignored?
Unfortunately I'm missing technical insight, as I've become a ripper only after the PSID era. Inge?
2005-08-31 15:39
macx

Registered: Mar 2002
Posts: 255
this fab-sidplayer, when produced, should be implemented to a mmc64-update, making life even easier for the ones of us running HVSC from the mmc64 :-)
Previous - 1 | 2 | 3 - 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
leonofsgr/Singular C..
CreaMD/React
Conjuror
Andy/AEG
Didi/Laxity
Guests online: 137
Top Demos
1 Next Level  (9.7)
2 13:37  (9.7)
3 Mojo  (9.7)
4 Coma Light 13  (9.6)
5 The Demo Coder  (9.6)
6 Edge of Disgrace  (9.6)
7 What Is The Matrix 2  (9.6)
8 Uncensored  (9.6)
9 Comaland 100%  (9.6)
10 Wonderland XIV  (9.6)
Top onefile Demos
1 No Listen  (9.7)
2 Layers  (9.6)
3 Cubic Dream  (9.6)
4 Party Elk 2  (9.6)
5 Copper Booze  (9.6)
6 X-Mas Demo 2024  (9.5)
7 Dawnfall V1.1  (9.5)
8 Rainbow Connection  (9.5)
9 Onscreen 5k  (9.5)
10 Morph  (9.5)
Top Groups
1 Performers  (9.3)
2 Booze Design  (9.3)
3 Oxyron  (9.3)
4 Censor Design  (9.3)
5 Triad  (9.3)
Top Original Suppliers
1 Derbyshire Ram  (9.7)
2 Fungus  (9.3)
3 Black Beard  (9.2)
4 Baracuda  (9.2)
5 hedning  (9.1)

Home - Disclaimer
Copyright © No Name 2001-2024
Page generated in: 0.154 sec.