News:

Printed Amstrad Addict magazine announced, check it out here!

Main Menu
avatar_Bryce

CPC-SID

Started by Bryce, 21:30, 23 September 11

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Bryce

Hi All,
      ok, even if I end up getting hate mail for this, here it is. I had an hour free tonight and threw together a first draft of what a Stereo SID expansion for the CPC might look like. It's basically just some address decoding, two SIDs and a divider (to reduce the 4Mhz from the CPC to 1Mhz). The output stages are "old-school", ie: more or less what was in the C64, no op-amp, just discrete components, to keep it comparable (and retro). There's an input for the AY to both SIDs to allow FM Synthesis using the AY output and a stereo speaker output. The first SID can be accessed at addresses &F800 to &F81F, the second SID is at &F820 to F83F. Obviously I haven't built one yet, so it might still have a few bugs. When I get a chance, I'll make a rough prototype. But I'll need someone to write some test software to test it. This version would also only work for 6581 SIDs at the moment, for the 8580 SID some minor changes would be required, but a "switchable" version would also be possible.  And because it needs 12V, it's really only feasiable for a classic 6128, otherwise you'll need a seperate power supply.

Bryce.

TFM

The I/O range seems to be a good choice, I did not find any collitions.
TFM of FutureSoft
Also visit the CPC and Plus users favorite OS: FutureOS - The Revolution on CPC6128 and 6128Plus

Bryce

I checked the I/O Port summary in the Wiki first. The addresses were free and more importantly, easy to decode :)

Bryce.

TFM

I like that!
Which kind of soft do you need?
TFM of FutureSoft
Also visit the CPC and Plus users favorite OS: FutureOS - The Revolution on CPC6128 and 6128Plus

Bryce

Take a look at the datasheet attached. On page three you can see the SIDs register numbers in Hex and an explanation of what they do. For SID0 the registers can be calculated with &F800+Reg No. and SID1 with &F820+Reg No. Feed them with the correct data and it should sing for you :) The expansion is designed so that readable registers are also readable for the CPC.

Bryce.



SyX

In my sid project i was using the port $FF60 and a similar configuration that you, Bryce, tomorrow i will try to recompile my sid patches for caprice using your ports and then i will reassemble my old sidplayer sources, but now you can use this simple basic example, that it was my first test ;)
5 s=&F800: REM SID Port
10 FOR l=s TO s+24:OUT l,0:NEXT:REM clear sound chip
20 OUT s+5,9:OUT s+6,0
30 OUT s+24,15:REM set volume to maximum
40 READ hf,lf,dr
50 IF hf<0 THEN END
60 OUT s+1,hf:OUT s,lf
70 OUT s+4,33
80 FOR t=1 TO dr:NEXT
90 OUT s+4,32:FOR t=1 TO 50:NEXT
100 GOTO 40
110 DATA 25,177,250,28,214,250
120 DATA 25,177,250,25,177,250
130 DATA 25,177,125,28,214,125
140 DATA 32,94,750,25,177,250
150 DATA 28,214,250,19,63,250
160 DATA 19,63,250,19,63,250
170 DATA 21,154,63,24,63,63
180 DATA 25,177,250,24,63,125
190 DATA 19,63,250,-1,-1,-1

TFM

Bryce, SyX: I've never been a friend of the SID in the old days (for emotional reasons only), but it's time to get over old habbits for me.
And this project all looks like a great idea to me :-))) So, friends let's make the best out of it :-D
TFM of FutureSoft
Also visit the CPC and Plus users favorite OS: FutureOS - The Revolution on CPC6128 and 6128Plus

Badstarr

Cool! Great work Bryce! FM Synthesis capability confirmed! I really like the look of this! I like synths a hellovalot! I got a fist class grade for my dissertation in sound synthesis during my degree so if there is any way I can be of help feel free to ask!  ;D



Proud owner of 464 GTM64 6128 GTM65, GX4128 and a 464/6128 Plus Hybrid a 20 year long ambition realised! :-)

Bryce

Cool, because my knowledge of synthesis is zero. In fact, my entire Synthesis experience was going to a Jean Michel Jarre Concert back in the 80's :D

Bryce.

Badstarr

Ha! That's interesting as I was thinking maybe an Oxygene tribute could be a good way to showcase the abilities of this project!  :D 
Proud owner of 464 GTM64 6128 GTM65, GX4128 and a 464/6128 Plus Hybrid a 20 year long ambition realised! :-)

tastefulmrship

Quote from: Bryce on 08:49, 24 September 11
Cool, because my knowledge of synthesis is zero. In fact, my entire Synthesis experience was going to a Jean Michel Jarre Concert back in the 80's :D
Synths? Also try the fabulous VANGELIS and the amazing TANGERINE DREAM!
Also... any "Kraut Rock" from the late 70s/early 80s. For some reason, from the mid 90s onwards, electronic music took a major dive! Possibly due to the commercialisation of dance music, which was inspired by these keyboard pioneers!
Oh, and OZRIC TENTACLES for that guitar/flute over the synth sound!

Anyway, a HardSID for CPC would be great, but are there any decent software 'emulations' of the SID sound that we can experiment with in STarkos? I already know that HARDENV can be used to emulate some SID Pulse sounds (mainly basses) but that's about it.

Gryzor

Ooh, Tangerine Dream; now there's a guy who knows his music... :)

tastefulmrship

Quote from: Gryzor on 10:34, 24 September 11
Ooh, Tangerine Dream; now there's a guy who knows his music... :)
Ah! But only the Schmoelling and Haslinger years... and some of the late Baumann stuff, perhaps! 80s & early 90s Tangerine Dream is still them at their very best!

Poland, White Eagle, Tangram, Le Parc, Livemiles to name but a few of my favourites! Oh, and you can't forget the early live stuff; Ricochet, Phaedra and the early studio classic Stratosphere! (Slightly off-topic!)

SyX

Quote from: TFM/FS on 00:34, 24 September 11
Bryce, SyX: I've never been a friend of the SID in the old days (for emotional reasons only), but it's time to get over old habbits for me.
And this project all looks like a great idea to me :-))) So, friends let's make the best out of it :-D
You know, these projects have to start in some place, and after the sid we always could rip a few apple 2gs for its ensoniqs or a few cps2 for its qsounds xDDD

Bryce, i have found the sources of my "frankenstein caprice", but i haven't the same luck with the sources of my Sam Coupe sidplayer port, but don't worry i have changed the ports in the binary using an hex editor ;) and not sounds bad (a little fast... but it's for my fast hack of caprice :P, i'm sure in the real hardware it will go better). Only use the first SID  ($F800) of your project ;)

DaDMaN

#14
.

DaDMaN

#15

.
.
.
; Mueve el emulador de c64 a la página 6
; en nuestro caso corrompe el sid
; #0000-#7fff   Páginas 5 y 6
;               ld   a,high_page+rom0_off
;               out  (lmpr),a
;               ld   hl,&d000
;               ld   de,&d000-&8000
;               ld   bc,&1000
;               ldir                 ; copy player


; El mapa de memoria es:
; #0000-#7fff   Páginas 3 y 4 <-(SID)
;              ld   a,low_page+rom0_off
;              out  (lmpr),a        ; page tune back in
; #8000-#ffff   Páginas 5 y 6 <-(Emulador)
;              ld   a,high_page
;              out  (hmpr),a        ; activate player copy


; IX apunta a la cabecera del sid
               ld   h,(ix+10)       ; init address
               ld   l,(ix+11)
               ld   (init_addr),hl
               ld   h,(ix+12)       ; play address
               ld   l,(ix+13)
               ld   (play_addr),hl
.
.
.


Phi2x

#16
.

DaDMaN

#17
.

SyX

How always you only see, what you want to see, take a look to this post:
QuoteA few years ago, i "hacked" the caprice sources to add a SID chip and converted the Simon Owen's Sam Coupe sidplayer. The idea was that DaDman would make a card for the CPC with a Swinsid... but we began with more interesting projects :P

You can "enjoy" this franken-horror of caprice here  :-\ , in sidplay.dsk is a conversion of a c64 basic program to locomotive basic (only had to change the pokes to outs  ;D ) and in playsid.dsk one of first version (i haven't found any later version) of my "port" of Simon Owen's sidplayer "playing" (va a ser que no  :laugh: ) the AcesHigh.sid by Lasse Öörni  ;)
And if you read at the beginning of this thread, Bryce said:
QuoteBut I'll need someone to write some test software to test it.
I'm the only one that think it's stupid don't help, specially when i have software that he could used and only would need a simply change of ports.
.
.
.
But no, drama queen is here and is shooting shit, Nice!!!

Well you win, i'm out of this and every project related to you and your "ideas", i'm tired of this situation.

Good Luck with your ideas!!!

Bryce

Either way, CPC-SID isn't really a project (yet). I just scribbled a quick schematic to show how a SID could theoretically be connected to a CPC, I don't intend making a real project out of it, unless loads of people start screaming how badly they need it or how much of their life was spent waiting for this to come along. The design isn't based on any (modern) project. The connections to the SID are standard, ie: what the datasheet requires, the output stage is almost 100% identical to what's in a real C64 (I used an equivalent modern transistor) and the address decoding/freq. divider was done in ten minutes out of my head using ICs that I usually use (and probably still has a few mistakes in it :D ).

If it becomes a real project, the SwinSID sounds like a great solution and it could be easily adapted so that a CPC controls a SwinSID, in which case 90% of my schematic wouldn't be required.

Bryce.

DaDMaN

#20
.

DaDMaN

#21
You can see how SwinSID sounds here with some demos (go to Demos section):

http://www.swinkels.tvtom.pl/swinsid/

Differences between SwinSID module and a real SID chip:

       
  • SwinSID works in asynchronous mode (there is no need of CPC clock frequency division... No need any clock signal from CPC anyway).
  • SwinSID only "emulates" audio part of SID. There is not emulation of "joypads" interface of SID chip (we don't need it).
  • SwinSID is 99% compatible with original SID tunes.
  • We can't read registers from SwinSID. Not a big problem for making music.
  • SwinSID has some audio enhancements: One digital channel for playing samples, added several waveforms, reverb, etc.
  • SwinSID works with 5V. Original SID with 12V.
  • Original SID chips avaliability (and prices) is a problem nowadays.
  • First SID releases have overheating problems. They need to be cooled by some way if you don't want a burned chip.
  • SwinSID module uses Atmega microcontroller. Easy to buy, easy to find and with updateable firmware to improve emulation (or to program your own/custom synth chip).
Listen the demos on the webpage and decide by yourselves if using original SIDs or "emulated SIDs" for this amazing project.


Cheers

TFM

#22
Quote from: SyX on 11:58, 24 September 11
Bryce, i have found the sources of my "frankenstein caprice"...

Any link for us? EDIT: I got it from the other thread! Thx!


Quote from: DaDMaN on 12:11, 24 September 11
But in private, please... I don't want someone continues stealing me "ideas".

Well, I can't see that Bryce "stole" your SID idea. And HIS card is topic here, so this is a hardware topic. And not a flamewar one (which can be done in the WW2 topic actually if you want). We want to keep that thread here constructive, ok?

And by the way: I saw a SID running on a CPC over 20 years ago, just check out the CPCAI!


Quote from: phi2x on 12:52, 24 September 11
There is no such thing as "stealing ideas" IMHO. That's precisely what I think is broken with the current patent system. Anyone which has a vague idea can put a patent on it and block innovation for a long time. That sucks :/

I never agreed so much with you!!!
TFM of FutureSoft
Also visit the CPC and Plus users favorite OS: FutureOS - The Revolution on CPC6128 and 6128Plus

redbox

'Emulation' is all very well, but for me you can't beat taking a real SID chip from a C64 and getting it to run on a CPC.

So Bryce et all - please do carry on with your project  :)

TFM

Quote from: redbox on 18:42, 24 September 11
'Emulation' is all very well, but for me you can't beat taking a real SID chip from a C64 and getting it to run on a CPC.

Surely agreed, but like I've understood: the Caprice with SID emulation is just there to allow us to code software in parallel to the developpment of the hardware.  :)
TFM of FutureSoft
Also visit the CPC and Plus users favorite OS: FutureOS - The Revolution on CPC6128 and 6128Plus

Powered by SMFPacks Menu Editor Mod