BeebSID

for bbc micro/electron hardware, peripherals & programming issues (NOT emulators!)
TopBanana
Posts: 1064
Joined: Wed Jun 09, 2010 2:16 pm
Contact:

Re: BeebSID

Post by TopBanana » Thu May 31, 2012 6:08 pm

A "quick and dirty" SID

Ocean Loader DMC version

Boot the attached .ssd in B-em or on your Beeb with Beebsid and enjoy ....

:D :D
Attachments
Ocean Loader DMC Version.zip
(3.38 KiB) Downloaded 73 times

TopBanana
Posts: 1064
Joined: Wed Jun 09, 2010 2:16 pm
Contact:

Re: BeebSID

Post by TopBanana » Thu May 31, 2012 7:53 pm

And another one - the rather fabulous Monty on the Run :D

This one is "interesting" :?

By that I mean it plays just fine on B-em , but if I run it on my Master with a BeebSID it sounds as if there is a channel not playing :( :?

Does anyone with a BeebSID get the same ? Perhaps it's just my hardware :(
Attachments
MontyOnTheRun.zip
(5.26 KiB) Downloaded 75 times

TopBanana
Posts: 1064
Joined: Wed Jun 09, 2010 2:16 pm
Contact:

Re: BeebSID

Post by TopBanana » Mon Jun 04, 2012 9:56 am

Crazy Comets - very funky - another fabulous Rob Hubbard tune :D

Boot the attached .ssd in B-em or on your Beeb with Beebsid and enjoy ....
Attachments
Crazy Comets.zip
(3.72 KiB) Downloaded 73 times

TopBanana
Posts: 1064
Joined: Wed Jun 09, 2010 2:16 pm
Contact:

Re: BeebSID

Post by TopBanana » Mon Jun 04, 2012 1:15 pm

Another one that works fine on B-em, but not on my Master with a BeebSID :( :-k

I'd blame the hardware designer .... :lol:

Would someone with a real BeebSID be kind enough try it on theirs and see if it plays properly, if I ask nicely ? :D :D :D
Attachments
Ocean Loader Remix.zip
(3.37 KiB) Downloaded 71 times

BBCB+64K
Posts: 221
Joined: Mon Mar 22, 2010 9:51 pm
Location: North Norfolk
Contact:

Re: BeebSID

Post by BBCB+64K » Mon Jun 04, 2012 5:30 pm

All your tunes work fine on my Master 128 with a BeebSID daisy-chained through the DataCenter.

Steve
My current setup...

BBC B+ 128k with external DataCentre with 2GB CF Card, 64MB ARM7TDMI Co-Processor and BeebOPL.

User avatar
MartinB
Posts: 5249
Joined: Mon Mar 31, 2008 9:04 pm
Location: Obscurity
Contact:

Re: BeebSID

Post by MartinB » Mon Jun 04, 2012 7:41 pm

TopBanana wrote:I'd blame the hardware designer.... :lol:
That's a bit harsh - I'm sure the designers of the Master were very nice people [-X

Have you tried the simple test program I published way back at the release of BeebSID? This would at least confirm that you have basic functionality...

Code: Select all

5 REM BeebSID 3-VOICE TEST PROGRAM
 10 FORL=64544TO64568:?L=0:NEXT:?64568=15:GOSUB60
 20 ?W=17:?A=9:?HF=15:?LF=35:?S=128:GOSUB50:GOSUB70
 30 ?W=17:?A=9:?HF=20:?LF=40:?S=128:GOSUB50:GOSUB80
 40 ?W=17:?A=9:?HF=25:?LF=50:?S=128:GOSUB50:GOTO10
 50 FORX=1TO2000:NEXTX:RETURN
 60 W=64548:A=64549:HF=64545:LF=64544:S=64550:RETURN
 70 W=64555:A=64556:HF=64552:LF=64551:S=64557:RETURN
 80 W=64562:A=64563:HF=64559:LF=64558:S=64564:RETURN
btw - Is your BeebSID one of my originals or one of those later cheap copies? :wink:

TopBanana
Posts: 1064
Joined: Wed Jun 09, 2010 2:16 pm
Contact:

Re: BeebSID

Post by TopBanana » Tue Jun 05, 2012 9:03 am

:lol: Martin

Just tried the test program and it's a happy BeebSID, all 3 channels play, although the first & lowest pitched note does seem quieter.

Not sure if it's an orginal, how would one tell ??

I purchased it off some dodgy bloke called Charlie ....... :lol: :lol:

I may try it on a plain vanilla machine with just a DFS, all the machines I have in use at the moment have a DataCentre installed - I know it shouldn't make any difference, but I need to start the process of elimination somewhere ....

User avatar
MartinB
Posts: 5249
Joined: Mon Mar 31, 2008 9:04 pm
Location: Obscurity
Contact:

Re: BeebSID

Post by MartinB » Tue Jun 05, 2012 7:08 pm

TopBanana wrote:Not sure if it's an orginal, how would one tell ??
Phill (Prime) did a second run of BeebSID PCB's with minor config modifications - if you were going to identify a design problem, I was just getting ready to drop my shoulders and unconditionally pass the buck :lol:
TopBanana wrote:I may try it on a plain vanilla machine with just a DFS
Always the recommended course of action when encountering unusual symptoms. I'm sure we've done the Datacentre_with_BeebSID thing to death, as far as I'm concerned they will live together happily ever after 8)

Prime
Posts: 2793
Joined: Sun May 31, 2009 11:52 pm
Contact:

Re: BeebSID

Post by Prime » Tue Jun 05, 2012 7:16 pm

I've deffo used the MK2 BeebDID with the Datacentre, it's pretty much the only configuration that I have used it in, attached to one of my Masters.

One thing I did notice is that you have to disable the internal 6502 co-pro that machine has fitted and if you are using one of the BeebSID disks you also have to enable DTRAP after loading it into RAM.

Cheers.

Phill.

TopBanana
Posts: 1064
Joined: Wed Jun 09, 2010 2:16 pm
Contact:

Re: BeebSID

Post by TopBanana » Tue Jun 05, 2012 7:29 pm

I've opened it up and it says "Issue 2"

I'll dig out my 1770 B with RAMagic! installed tommorow and see what I get with that :D

I'll change the SID as well, if I can find the old breadbin I know I have somewhere. :-k

What is strange though is that some play perfectly (Crazy Comets for example) whilst the last one I converted (Ocean Loader) just degenerates into a mess of beeps and squeaks.

User avatar
billcarr2005
Posts: 1400
Joined: Fri Sep 09, 2005 3:01 pm
Location: UK
Contact:

Re: BeebSID

Post by billcarr2005 » Tue Jun 05, 2012 9:16 pm

Did you copy the SID file directly from the C64 file, or relocate it for the BBC? If it's degenerating, it sounds like it could be it's lost the sound data somewhere along the way...

TopBanana
Posts: 1064
Joined: Wed Jun 09, 2010 2:16 pm
Contact:

Re: BeebSID

Post by TopBanana » Tue Jun 05, 2012 10:03 pm

Hi Bill,

The SIDs are playing at their native C64 addresses - take a look a the disks, it's mostly done in BASIC, hence the "quick and dirty".

Steve (BBCB+64k) has confirmed they play OK on his machine with a BeebSID, and they play fine on B-em with the BeebSID enabled, so I think it's a hardware issue.

I'll know more tomorrow when I dig out another machine to test it on.

User avatar
danielj
Posts: 7564
Joined: Thu Oct 02, 2008 4:51 pm
Location: Manchester
Contact:

Re: BeebSID

Post by danielj » Wed Jun 06, 2012 10:28 am

TopBanana wrote:Hi Bill,

The SIDs are playing at their native C64 addresses - take a look a the disks, it's mostly done in BASIC, hence the "quick and dirty".

Steve (BBCB+64k) has confirmed they play OK on his machine with a BeebSID, and they play fine on B-em with the BeebSID enabled, so I think it's a hardware issue.

I'll know more tomorrow when I dig out another machine to test it on.
I did pop a more comprehensive sid tester up in the retrosoftware beebsid forum, it tests all the waveforms and filters on each channel. Might be worth having a go with that as it could just be one of the waveforms that's buggered?

http://www.retrosoftware.co.uk/forum/vi ... f=62&t=700

d.

TopBanana
Posts: 1064
Joined: Wed Jun 09, 2010 2:16 pm
Contact:

Re: BeebSID

Post by TopBanana » Wed Jun 06, 2012 11:27 am

Thanks Daniel,

I did test it using your program a while back and it seems OK - although I'm presuming the output I received is what was intended.

TopBanana
Posts: 1064
Joined: Wed Jun 09, 2010 2:16 pm
Contact:

Re: BeebSID

Post by TopBanana » Wed Jun 06, 2012 2:37 pm

Moved the BeebSID to a different Beeb with no other devices on the 1Mhz bus - same results :(

Daniels filter test program seems to work fine, some SIDs seem to play OK, others don't.

Never mind, hopefully I've got a backup BeebSID coming in a few weeks so I can contrast and compare then.

In the meantime I can keep "Beebifying" some more SIDs using the rather excellent B-em :D

BBCB+64K
Posts: 221
Joined: Mon Mar 22, 2010 9:51 pm
Location: North Norfolk
Contact:

Re: BeebSID

Post by BBCB+64K » Wed Jun 06, 2012 5:29 pm

@Mr Bananaman :D

Which SID chip are you using in your BeebSID? I'm using a 6581 chip which plays all the tunes you've done so far perfectly from disk with the DataCenter switched off.

Steve
My current setup...

BBC B+ 128k with external DataCentre with 2GB CF Card, 64MB ARM7TDMI Co-Processor and BeebOPL.

TopBanana
Posts: 1064
Joined: Wed Jun 09, 2010 2:16 pm
Contact:

Re: BeebSID

Post by TopBanana » Wed Jun 06, 2012 5:39 pm

It's also a 6581 Steve - manufactured in 1984.

I couldn't find the old breadbin C64 earlier, will have to have a proper look later so I can swap it out and see if it makes a difference.

User avatar
1024MAK
Posts: 9294
Joined: Mon Apr 18, 2011 4:46 pm
Location: Looking forward to summer in Somerset, UK...
Contact:

Re: BeebSID

Post by 1024MAK » Wed Jun 06, 2012 11:41 pm

TopBanana wrote:It's also a 6581 Steve - manufactured in 1984.I couldn't find the old breadbin C64 earlier, will have to have a proper look later so I can swap it out and see if it makes a difference.
I presume that you have checked to make sure that the correct links are made and the correct power supply arrangements have been provided (correct regulator and correct input supply voltage). Better still test with a meter... :mrgreen:

See http://www.stardot.org.uk/forums/viewto ... 581#p42834

Mark K.

User avatar
pauldjagger
Posts: 34
Joined: Mon Aug 08, 2011 5:41 pm
Location: Letchworth Garden City, Hertfordshire
Contact:

Re: BeebSID

Post by pauldjagger » Sun Jun 24, 2012 8:00 am

I'm having a problem getting any SID files to work with my BeebSID.

I've just rigged up my 6581 equipped BeebSID having acquired a 3.5" floppy drive to BBC auxiliary power cable, and tested it using the various SID test utilities posted on this forum. The SID chip is recognised, the National Anthem plays with SIDTEST and the waveform tests pass without error. So far, so good...

I've downloaded a few of Pitfall Jones' SID disks and find that they freeze immediately when reaching the menu of music tracks. I'm unable to select any music track.

I've tried the BeebSID connected to a BBC Master with both MOS 3.2 and MOS 3.5, with and without a DataCentre attached, and attached to a BBC Model B+ without DataCentre. All all those scenarios I'm unable to play any SID music track.

The same problem occurs with the selection of Tom Walker's disks that I have downloaded.

Any ideas?
Paul D Jagger MSc PgDMS CITP FBCS
On Twitter, LinkedIn and SKYPE as pauldjagger

TopBanana
Posts: 1064
Joined: Wed Jun 09, 2010 2:16 pm
Contact:

Re: BeebSID

Post by TopBanana » Sun Jun 24, 2012 10:03 am

pauldjagger wrote:I'm having a problem getting any SID files to work with my BeebSID.
Do any of my "Quick and Dirty SID" files work ?

Much less to go wrong in them :shock:

http://www.stardot.org.uk/forums/viewto ... &start=709

User avatar
pauldjagger
Posts: 34
Joined: Mon Aug 08, 2011 5:41 pm
Location: Letchworth Garden City, Hertfordshire
Contact:

Re: BeebSID

Post by pauldjagger » Sun Jun 24, 2012 3:34 pm

Ok, the 'Quick and Dirty' SID files worked ok.

I tried *DTRAP with the SID connected to my BBC Master + DataCentre and that immediately resulted in PJ's disks successfully playing - yippee!

Now I'm left with the mystery of why they would not play on my B+ without the DataCentre fitted ???

An investigation for another weekend I think...
Paul D Jagger MSc PgDMS CITP FBCS
On Twitter, LinkedIn and SKYPE as pauldjagger

poink
Posts: 963
Joined: Tue Mar 01, 2011 10:27 am
Contact:

Re: BeebSID

Post by poink » Mon Jul 23, 2012 8:17 am

I just ran into this tool, sidreloc, which appears to perform automatic relocation for (the vast majority of) SID tunes.

It from the description of the algorithm it sounds like we might also be able to also use it to relocate the SID registers, which, if true, would mean that we could get the vast majority of the SID tune library working for BeebSID fairly easily.

TopBanana
Posts: 1064
Joined: Wed Jun 09, 2010 2:16 pm
Contact:

Re: BeebSID

Post by TopBanana » Mon Jul 23, 2012 7:39 pm

poink wrote:I just ran into this tool, sidreloc, which appears to perform automatic relocation for (the vast majority of) SID tunes.
Converting the registers is fairly trivial, I wrote a quick BASIC program to do it. It just reads the SID file in,drops the first two bytes (as these are the load address of the file on a C64) and then searches for a byte pair of xxD4 (where xx is between 00 and $20, or however many SID regsiters there are). When a valid SID address is found, it's converted to the equivalent BeebSID address.

I've been beavering away (well, occasionally prodding at) the WizBall SID routine as it won't just work after running it through the register conversion program above like some of the other SIDs I've tried it on.

It's VERY specific to the C64. From memory (as I'm not at home at the moment) it switches an area of ROM out in the $Bxxx range and switches RAM in and moves a bunch of stuff there. Obviously, this area is ROM in the Beeb so no amount of shouting at it will make it work, it needs relocating.

It will be interesting to try this program on the WizBall SID and see what it throws up. I suspect it won't work, but it's worth it giving it a try :D

poink
Posts: 963
Joined: Tue Mar 01, 2011 10:27 am
Contact:

Re: BeebSID

Post by poink » Tue Jul 24, 2012 6:49 pm

TopBanana wrote: then searches for a byte pair of xxD4 (where xx is between 00 and $20, or however many SID regsiters there are). When a valid SID address is found, it's converted to the equivalent BeebSID address.
I can't help but suspect that you're only getting away with this because xxD4 is uncommon as an instruction sequence and SID music tends to access the SID by absolute addressing. The advantages of how sidreloc does it is that a) it can find all occasions where SID registers are accessed b) it's fairly easy to check that relocation has been performed correctly c) it can move the SID tune into a position that's more usual for a BBC program.

TopBanana
Posts: 1064
Joined: Wed Jun 09, 2010 2:16 pm
Contact:

Re: BeebSID

Post by TopBanana » Wed Jul 25, 2012 9:45 am

I didn't realise I was "getting away" with anything at all #-o

It's just a quick program to automate what I was doing in a HEX editor - essentially a search and replace. It took 15 minutes to write and my comments in the code at the time of writing were ;-

Code: Select all

  
100 REM This program takes an input file created as a C64 .prg file
110 REM from SIDEdit and converts any references to C64 SID registers
120 REM to BeebSID registers.
130 REM This program does not analyse the code, it blindly changes any 
140 REM references in the $D400-$D41C range and may affect song data
Using it and a simple basic program to load the BeebSID file and set up an interrupt means that it takes 2 minutes to do a quick check on a SID and see if it converts quickly and easily to the Beeb, hence the reference to "Quick and Dirty".

I did it this way after reading these two posts earlier in the thread ;-
nOmArch wrote:If someone could put a tutorial together of how to patch the SID files I'm sure some of us lesser beardy types could start making a dent on the HV archive.
BBCB+64K wrote:I've looked at the programming over at the site TopBanana posted, but it's a little beyond me since I'm not up on assembly programming. Surely there must be a way to extract the music data from a SID file and have a player routine written in Basic that loads the data at &3000 or wherever and have the routine play it from that address?Steve
Using simple BASIC programs anyone can have a quick go at converting a SID and depending on how it's programmed it may convert properly and play for them.

Bill & PJ - I'd be interested to know if when you convert your tunes do you do anything more involved that just searching for the regsiters ? Bill, I *think* you also relocate some code don't you, but just by changing the page of the code (ie, the MSB)

Anyway, when I get access to a Linux machine at home I'll have a play with SIDReloc. Poink, have you tried it, or are your theories just conjecture and presumption ?

User avatar
billcarr2005
Posts: 1400
Joined: Fri Sep 09, 2005 3:01 pm
Location: UK
Contact:

Re: BeebSID

Post by billcarr2005 » Wed Jul 25, 2012 2:31 pm

TopBanana wrote: Bill & PJ - I'd be interested to know if when you convert your tunes do you do anything more involved that just searching for the regsiters ? Bill, I *think* you also relocate some code don't you, but just by changing the page of the code (ie, the MSB)
I wrote a program similar to
10 FOR I%=start TO finish
20 IF?I%=8D AND ?(I%+2)=&D4 THEN PRINT ~I%
30 NEXT

then I would've gone through the code changing those locations at I%. I think it would've evolved into changing automatically too, since it's trivial once the locations have been found.
Code relocation was probably sorted in a similar way, by looking for the STA and LDA operands, and then adjusting the value at I%+2.
I've since cobbled together an automated program, which works to some extent, as far as i can remember - since i barely looked at it for 2 years! If you want to take a look at that, i could try to put some loose instructions on how it works together :)

TopBanana
Posts: 1064
Joined: Wed Jun 09, 2010 2:16 pm
Contact:

Re: BeebSID

Post by TopBanana » Wed Jul 25, 2012 2:42 pm

billcarr2005 wrote: I've since cobbled together an automated program, which works to some extent, as far as i can remember - since i barely looked at it for 2 years! If you want to take a look at that, i could try to put some loose instructions on how it works together :)
Would be interesting to see Bill - if it's in Basic the non-assembler guys could get involved too, as the saying goes, many hands ..... :D

TopBanana
Posts: 1064
Joined: Wed Jun 09, 2010 2:16 pm
Contact:

Re: BeebSID

Post by TopBanana » Wed Jul 25, 2012 7:32 pm

Just tried SidReloc on Wizball - failed :( :-({|= :-({|=

Not enough ZP addresses (I specified &70-&8f) - are there any other areas that can be used ?

User avatar
MartinB
Posts: 5249
Joined: Mon Mar 31, 2008 9:04 pm
Location: Obscurity
Contact:

Re: BeebSID

Post by MartinB » Wed Jul 25, 2012 9:26 pm

Is the zp just for use by the conversion process or for use by the end-game tune as it plays? Either way, you should be able to use $50 to $6F - it's language workspace but isn't used by BASIC :wink:

User avatar
billcarr2005
Posts: 1400
Joined: Fri Sep 09, 2005 3:01 pm
Location: UK
Contact:

Re: BeebSID

Post by billcarr2005 » Thu Jul 26, 2012 2:52 am

Scanning through a disassembly, i found all of the following ZP locations being used by the program.
04, 05, 06, 07, 08, 0a, 0C, 0d, 0E, 0F
10, 11, 13, 14, 15, 16, 17, 18, 19, 1B
2a, 2b, 2c, 2d, 2e, 2f
30, 31, 39
41, 43, 44, 45, 49, 4A, 4B, 4C, 4e, 4F
50, 51, 52, 53, 54, 55, 56, 57, 59, 5a,5b, 5C, 5D
94, 98, 9F
A4, A5, A6, A7, A8, A9, AA, AB, AC, AD, AE, AF
B0, B1, B2, B3, B4, B6, B7, B8, B9, BC,
C1, C2, C3, C4, C5, C6, C7, C8, C9, CA, CB, CC, CD, CE, cf,
D0, D1, D2, D3, D4, D5, D6, d7, d8, D9, DA, DB, DC, dd, DE, DF
E0, e1, e2, e3, E5, EA, EF,
f3, F4, f8, f9

No doubt the ones inbetween are used too! Maybe this one is a candidate for complete disassembly and rebuild then all the ZP values could be put somewhere higher up...

Post Reply