Login
Back to forumReply to this topicGo to last reply

Posted By

SukkoPera
on 2024-03-15
16:33:01
 SD2IEC SID Player V2

I have noticed that the latest release of SD2IEC SID Player V2, V2.1, only contains the $D400 binary. Older versions had separate binaries for $D400, $FD40 and $FE80.

Does anybody have the other binaries?

Or maybe in this version the address can be configured within the program? In this case I don't seem to find out how to do that...

Posted By

Luca
on 2024-03-16
03:24:34
 Re: SD2IEC SID Player V2

You have noticed? Really? grin
Ok, the situation is a little more complex than that, so let's recap.

Initially, in order to test the ReSeed, I used SD2IEC SID Player V2 playing Last Ninja 2 music, and the output went bad: channel 2 tended to vanish, the volume was in general very low, some Sustain/Release were weird.
But if you play Last Ninja 2 with any impromptu player which copies the $D400 registers to $FD40 at the end of the play call, the result is the same, as tested on YAPE. On the other side, playing it directly on the C64 registers at $D400 works the right way.

Ok, it's the classic case in which you can't simply copy $D400 to $FD40 because the player handles in several ways the registers within the same frame. This is what Solder has written in the 13th chapter of Signals 3 diskmagazine: they only way to prevent this, is to directly convert the SID file itself by intercepting every single call to the $D400 registers and shifting'em to the $FD40 base. Solder finishes the note writing that this direct method fully substitutes the simple $D400->$FD40 copy which had been initially used as player in the Synergy SIDcard Software suite which had been released embedded with the original hardware.

Good, so what's happened when I compared the usage of the ReSeed, which we have now definitively interpreted, with a C264's Audio Extension? Well, it plays perfect even using SD2IEC SID Player V2! And no, we're not in the C64 Legacy mode which reads at $D400! Why this happens? I would have expected the same result as for the ReSeed, but: no.

In the next hours, I'm gonna test the same both on the NST's Audio Extension V2.0 and the original Solder's SID Card (Newer). meanwhile, is there a reason for this oddity?

Ok, I did it, and actually it works

Posted By

SukkoPera
on 2024-03-16
05:21:12
 Re: SD2IEC SID Player V2

I have tested with my CAE, which should be one of the last 2 sold, so I take it has the newest possible "firmware" and... it "fails" happy



It works correctly if I enable "C64 Legacy Mode", as expected.

So maybe you have an older firmware on your NAE that listens to $D400 by default? You can easily check: run the $D400 player from SD2IEC SID Player V2 2.0 and check if you hear anything!

Anyway, my conclusion is that this is not a hardware problem, the SID file should be fixed. All writes MUST go to $FD4x on the +4.

Posted By

Luca
on 2024-03-16
05:45:14
 Re: SD2IEC SID Player V2

Yes, that would have been what I should expect from the CAE. Today I'm gonna mount the Solder's one for a last test.

EDIT: did my tests.
CAE V2.1 SID6581: plays Last Ninja 2 music perfect, no C64 Legacy involved.
NAE V1.1 SID8580: plays Last Ninja 2 music perfect, no C64 Legacy involved.
Solder's SIDcard (newer) SID8580: fails to play Last Ninja 2 as expected, and as forseen via YAPE.

@BSZ I guess that you can understand more.

Posted By

BSZ
on 2024-03-17
11:12:53
 Re: SD2IEC SID Player V2

Sorry, I got lost in the details! happy

All versions of NAE/CAE disable $D4xx handling by default. (Or if you press the SRST button during reset, it will turn on, but this is not automatic.)

The register-copy version with those musics will be buggy, which write the same register more than once during one call. This can only be fixed by changing the music player code. Even so, bugs may still occur due to the different design of the two machines. For example, the player code runs at different speeds on the two machine types. Unfortunately, this problem is not as simple as it first appears.

Posted By

SukkoPera
on 2024-03-17
14:28:28
 Re: SD2IEC SID Player V2

@BSZ: I'll try to quickly recap our findings:

There's this song, Last Ninja 2 which, when played with SD2IEC SID Player V2 2.0 ($FD40 version):
- Does not play correctly on Solder's original SIDcard
- Does not play correctly on my Reseed card (It does after I added support for $D4x writes)
- Does not play correctly on YAPE configured with SID at $FD40
- Does not play correctly with my CAE (it does if I enable Legacy mode)

This is probably due to multiple writes being done to the SID registers at $D4x during a single frame and the player using the "copy" method, which would only copy the last value to $FD4x.

It all seems to make sense except that Luca reports that:
- It plays correctly on his NAE without enabling Legacy mode
- It plays correctly on his CAE without enabling Legacy mode

So this is puzzling us a bit happy.

Posted By

BSZ
on 2024-03-17
18:41:51
 Re: SD2IEC SID Player V2

Well, that seems very strange. grin The 'legacy' mode covers two things: the $D4xx address handling and the C64 clock mode. Do you mean both here when you talk about the 'legacy' mode? You could try to switch the machine's CPU clock to single clock mode while the player is running.

Posted By

SukkoPera
on 2024-03-18
06:21:32
 Re: SD2IEC SID Player V2

It plays correctly on my CAE if I reset while holding the button on it. I think the main point is that it will also listen on $D40x this way, since it's the same thing that makes it play correctly on my ReSeed card and on YAPE, too. The faster clock will make it sound different too (i.e.: higher pitched), but this is not important, our focus here is that there are no missing sounds.

My last video above is the output from my CAE, which is exactly the same as I get from a standard ReSeed. The following is from a ReSeed which also listens to $D40x:



(You can also see some yet-unreleased HW I'm currently working on :D)



Back to topReply to this topic


Copyright © Plus/4 World Team, 2001-2024