Building and testing a SID chip expansion for the Sinclair Spectrum.

Поділитися
Вставка
  • Опубліковано 9 лип 2024
  • Two of the most infamous computers of the 1980s brought together over music. In this video we attempt to build a SID expansion for the Sinclair Spectrum and try to get it playing a few SID music files.
    Massive thanks to SparxUK for kindly donating this project.
    Additional thanks to ‪@YawningAngelRetro‬ for letting me hold onto his 128k for this build.
    Project Links
    ZX-TSID - github.com/UzixLS/zx-tsid
    NSID - zxart.ee/eng/software/tool/mu...
    Tapir utility can be found on this page - worldofspectrum.net/utilities/
    Other UA-cam Channels mentioned in this video
    ‪@WhatHoSnorkers‬ - Spectrum based coding skills and cosplay (you just need to watch it to understand)
    CRG Links
    CRG X (Twitter) - / yt_crg
    CRG Patreon - www.patreon.com/user?u=13919007
    CRG Discord - / discord
    Chapters
    00:00 Intro
    02:22 Assembly
    18:29 Programming
    24:12 5V regulator at 5V
    26:22 Initial testing
    31:02 NSID player pro
    34:42 Testing
    43:00 Another look at the SwinSID
    44:54 Finally figured it out
    50:19 Conclusion
  • Наука та технологія

КОМЕНТАРІ • 81

  • @TheRealBobHickman
    @TheRealBobHickman Місяць тому +2

    Cool to see Simon Owen's name in the software - I had the pleasure of working with him in the 90s, a very smart guy.

  • @WhatHoSnorkers
    @WhatHoSnorkers Місяць тому

    Fantastic work sir... and what a lovely bit of kit! ZX Spectrum and SID living together in perfect harmony!

  • @talideon
    @talideon Місяць тому +4

    That's interesting! The player must have some pretty tight code to emulate the 6510 on the Z80. Most playroutines didn't need too much raster time (though Electrosound's was something of an exception), but even at that, some effects, like various kinds of sample playback, require precise timing. That sounds much better than I'd expect!

    • @CRG
      @CRG  Місяць тому +2

      It does sound great, I didn't expect it to have to emulation the 6510, I had thought it would just address the registers in the SID directly but all that goes a little over my head to be honest. I suppose it would explain why some songs struggle to play.

    • @primus711
      @primus711 Місяць тому

      Not emulation z80 can not emulate a 6502 well nothing useable

    • @primus711
      @primus711 Місяць тому

      ​@CRG that is correct your problem is z80 isnt fast enough u need like 4mhz z80 to even come close to 6502 at 1mhz

  • @UzixLS
    @UzixLS Місяць тому +2

    Glad you got it working!

  • @Plan-C
    @Plan-C Місяць тому +3

    Nice one on the fuse bits! 👌

    • @CRG
      @CRG  Місяць тому +1

      Thanks, bit silly to have missed that step in the first place but so happy I got it working in the end.

  • @chainq68k
    @chainq68k Місяць тому +5

    Blasphemy! Heresy! Awesome! Now that clones are plentiful, lets put SID into everything!

    • @CRG
      @CRG  Місяць тому +2

      SIDs for all! Other than the C64 I've now seen them in a Spectrum and an Amiga. I wonder what else supports one 🤔

    • @chainq68k
      @chainq68k Місяць тому +1

      @@CRG There's an old ISA card for IBM PC, although it's rare, and barely anything supports it, but I think they want to add support for the PicoGUS to emulate that. Additionally, there are also SID cards for the Plus/4, of course. And probably there's more, but maybe a few projects remained in a very homebrew and obscure state...

    • @AnnatarTheMaia
      @AnnatarTheMaia Місяць тому

      Wouldn't you rather have a proper DSP, with which not only could you generate infinite samples, but also add post-processing effects as well? Think "Buzztard" or "ReNoise", but on a Spectrum or a Commodore64, or even Amiga... imagine being able to do a real time synthesiser and generate tunes like the one in Conspiracy's "Beyond" demo...

    • @weepingscorpion8739
      @weepingscorpion8739 Місяць тому

      @@CRG Innovation SSL-2001 (or SSI-2001?, don't remember). It's an ISA card for the PC which uses a SID. A few games even support it, Ultima VI and The Crescent Hawk's Revenge are two examples.

  • @RetroRecollections
    @RetroRecollections Місяць тому

    I love these modern hardware hacks for old systems. If only this could be integrated into Spectrum games old and new?

  • @drramtop1576
    @drramtop1576 Місяць тому +4

    Interesting project, though as you found whoever ordered the PCBs made an error having them built with HASL coating. That makes QFP chips much more difficult to solder, going with ENIG coating is always with the extra cost when using QFPs with a pin pitch below 1mm.

    • @CRG
      @CRG  Місяць тому +1

      Yeah ENIG is far easier to work with but the cost different for HASL can be attractive. I got there in the end though.

  • @GianmarioScotti
    @GianmarioScotti Місяць тому +4

    "Where is pin 1?" Such a classic question.

    • @CRG
      @CRG  Місяць тому +1

      The old ones are the best but its always good to start at pin 1.

  • @docnele
    @docnele Місяць тому +1

    When people talk about popularity, C64 usually wins-unless you ask the people from Eastern Europe, and those ones who used it in the 90's-not 80's! At the time C64 was already going away or gone, ZX-Spectrum was getting reverse-enginnered, improved, OS-equipped... it is that we the people that switched to Atari ST, Amiga and PCs even before that time are unaware of this.

  • @TheGunnarRoxen
    @TheGunnarRoxen Місяць тому +1

    well done for figuring that out!

    • @CRG
      @CRG  Місяць тому

      Thanks

  • @richeeeee
    @richeeeee Місяць тому +2

    That 3 option will likely be "Vertical Blank Interrupt" at either 50hz or 60hz. Hence why it went faster at 60hz.

    • @CRG
      @CRG  Місяць тому +1

      That'll be it, thanks for clarifying.

  • @Supercruiser5000
    @Supercruiser5000 Місяць тому

    Nice work dude. :)

  • @IRQBreaker
    @IRQBreaker Місяць тому +1

    It feels so wrong but I absolute love it!

  • @ptonpc
    @ptonpc Місяць тому

    That is a nice little microscope. Congratulation on the result :)

  • @LeftoverBeefcake
    @LeftoverBeefcake Місяць тому

    I played the $11_Heaven song on my C64 and it must be a big digitized sample or using samples, because it sounds distorted on this machine too (6581 SID chip). The song is in the High Voltage SID collection, under artist Jeroen Tel, for those who want to listen along at home. ;)

  • @MJay999
    @MJay999 Місяць тому +9

    KiCAD's old pin 1 indication really wasn't too obvious for newcomers. The newer symbol versions have started showing a little triangle arrow, which should be easier to identify.

    • @CRG
      @CRG  Місяць тому +1

      It did take me a minute of staring to figure out where the pin 1 marker was. As I said I'm more used to just to the more obvious dot.

    • @kaitlyn__L
      @kaitlyn__L Місяць тому

      I'm inferring what's on these boards is the old marker, because certainly in school I was taught about the notch, the dot, and the arrow... I was not taught about this, uh, 5-sided square shape.
      A square with a fifth edge hanging off it. I can kind of see the logic behind it, like it's a starting platform or something, but especially when it hews too close to the package outline it's terribly opaque at first glance.
      Glad to know it should be more standard soon.

    • @kevincozens6837
      @kevincozens6837 Місяць тому +1

      I didn't like the pin 1 marks in KiCad so I modified the silkscreen in the footprints in some of the libraries to use the more traditional (to me) pin 1 markers.

  • @bazza5699
    @bazza5699 Місяць тому +3

    would be amazing if some old games supported it

    • @otis7359
      @otis7359 Місяць тому +1

      Maybe simple sounds could be produced in BASIC via POKEs.

    • @Zeem4
      @Zeem4 Місяць тому +2

      @@otis7359 OUT statements - it's mapped into the Z80's IO space, not memory.

    • @CRG
      @CRG  Місяць тому +1

      It would be great to see some old game or maybe even some demoscene stuff make use of this expansion but I'm not sure if there would be sufficient resources in the spectrum to do that while play the SID. As you seen in this some titles do really struggle to playback.

  • @donkeymedic
    @donkeymedic Місяць тому

    i think that the pads for programing are compatible with standard pin pitch. Probably could use 90 degree pin headers. Just put the bottom of the L pin on pads.

  • @lexpee
    @lexpee Місяць тому +2

    Why not an OPL4 chip with which see made a sound card for the 8 bit MSX2 or 2+ computer.
    That's much more interesting and a much better sound with wave tables.

  • @gasparinizuzzurro6306
    @gasparinizuzzurro6306 Місяць тому

    If i remember correctly, sid files, as other psg format were a bunch of machine code instructions that wrote registers of the chip. Now, if this is true, sid files contains 6502 opcodes that are logically incompatible with the opcode used in zilog z80 which is the ZX Spectrum CPU. Is there some kind of sw emulation? so if the z80 emulates the 6502 code for sure there is a serious slow down, not as heavy is the 6502 is emulating the z80 but clearly not negligible. Or those files are converted during load to use z80 native opcodes?

  • @ricdintino9502
    @ricdintino9502 Місяць тому +1

    You are too hard on yourself. You weren't stupid, it's a process, and we learn just as much if not more from the mistakes along the way.

  • @mrt.7146
    @mrt.7146 Місяць тому

    Wauu! What's next: adding a Paula chip to the Atari ST? 🤩

  • @NorthWay_no
    @NorthWay_no Місяць тому +2

    It sounds(no pun) like you're playing a .sid file and as such emulating the full 6510 - I would suspect there are other register-dump formats or at least converters that can make one (because one of the most popular demo tools is to convert a sid file to a stream and compress it for way faster playback (same idea used on Amiga/ST too)).

    • @CRG
      @CRG  Місяць тому +1

      I admit I'm not actually sure of the format of the music that NSID plays, but I assume its a SID file as running it from the TR-DOS image I think you can load your own music too.

  • @kyorin6526
    @kyorin6526 Місяць тому

    You found the "ice cream van" setting at around the 38 minute mark 😁

  • @moforetro3612
    @moforetro3612 Місяць тому +4

    I love the ZX Spectrum & I love the C64 so This is a mariage made in heaven for me. The power of the Sid Combined with the speed of the ZX spectrum 🤩👍

    • @primus711
      @primus711 Місяць тому +2

      Speed? C64 was faster

    • @moforetro3612
      @moforetro3612 Місяць тому

      @primus711 the spectrums processor was much faster than the 64's. The 64 had custom sound & graphics chips that sped up performance. Do you remember some games on the 64 slowing down during play as the processor bottlenecks, I do, commando is one example of this.

    • @primus711
      @primus711 Місяць тому

      @moforetro3612 again 6502 is 4x faster per clock there is no way around this why it's the most used cpu including game systems and computers etc
      The 6502 is derived from Motorola 6809 which us by far waaay faster than a crappy intel 8080 clone

    • @moforetro3612
      @moforetro3612 Місяць тому

      @@primus711I'v read up on the architecture of both CPU's & yeah, it's true. Just goes to show that numbers don't mean anything. Thanks for the heads up.

    • @primus711
      @primus711 Місяць тому

      @moforetro3612 just fyi the c128 runs 2x faster than the c64 with 6502 and it has a z80 just for cp/m
      And another fyi snes and pc engine use a custom 6502 among others
      Only thing better in that time was a 68000
      Today you have risc cpus running cisc
      Eg intel and amd x86/x64
      At the end of the day there r another more factors that come into play
      Z80 benefits were it didn't need as fast as ram as the 6502
      But that's all changes depending on what z80 and what 6502 we are comparing
      But either way 6502 is faster per clock by 2-4x

  • @stefanb4389
    @stefanb4389 Місяць тому

    It happens to the best of us

  • @disasterincarnate
    @disasterincarnate Місяць тому +3

    deffo a novelty until some clever people start adding code to modern spectrum games that can detect and perhaps use the sid chip as an extra option if present.

    • @moforetro3612
      @moforetro3612 Місяць тому +1

      Yeah, that would be brilliant.

    • @CRG
      @CRG  Місяць тому +2

      If someone could even make use of it within the demoscene and maybe even have it playing in conjunction with the AY chip it could sound amazing.

  • @kyorin6526
    @kyorin6526 Місяць тому +2

    It was interesting that the Spectrum struggled to feed the real SID, but not the imitation. Where was the bottleneck?

    • @kaitlyn__L
      @kaitlyn__L Місяць тому +3

      Assuming the SID registers behave anything like MOS's 6551 UART, the original SID will take longer to return to the state where it can receive a new instruction. Depending on how the program is coded, and based on its visual behaviour, it probably can't do anything while it's waiting on the SID.
      A lot like how you can generally put faster response RAM in a system without causing problems, but slower RAM will cause weird hangs and freezes during intensive operation (if it works at all).
      (It's also possible it's something more simple and more fundamental, like bus contention from the SwinSID. But I would hope the SID socket would have some kind of detection to disable the SwinSID core.)

    • @CRG
      @CRG  Місяць тому +3

      It's not so much that one SID performed better than others but more so that some songs just don't play back well on the 3.5mhz Z80 Spectrum. Some do play back fine and it was those that I picked to play at the end. I probably should have explained that better. The 3 tracks played at the end are playing on the real SID chip not the swinsid.

    • @kyorin6526
      @kyorin6526 Місяць тому +1

      @@CRG Something like Rob Hubbard's Mega Apocalypse track would likely have sounded really awful then, with all that super rapid channel switching.

    • @kaitlyn__L
      @kaitlyn__L Місяць тому

      @@CRG ah, I noticed it wasn't the same tunes but I didn't realise you'd switched back to the proper SID for the outro. It's probably all on the Z80's overhead then, and has nothing to do with register timing.
      Although presumably the SwinSID _does_ nevertheless respond to register inputs quicker, much like a modern 65C51 does. It's just probably not enough to make a difference to the Z80's perspective.

    • @AnnaVannieuwenhuyse
      @AnnaVannieuwenhuyse Місяць тому +1

      @@kaitlyn__L It very likely does! It would be interesting to benchmark this using some timer counts.

  • @YogSothoth1969
    @YogSothoth1969 Місяць тому

    That is awesome, great work, so well done 🙂 With the SwinSID, there was no blue border, is it possible, that the SwinSID is playing more fluent than a real SID on that circuit? o7 Cmdr

  • @AnnatarTheMaia
    @AnnatarTheMaia Місяць тому +4

    To know how to program it correctly already requires a tremendous amount of knowledge, so I wouldn't say that you were stupid, your knowledge foundation is vast... I wouldn't even know which software and hardware to get and where, let alone that those checkboxes had to be unset... The hardware is not a novelty if someone writes a routine to automatically detect and use it if available... @BreakIntoProg might be able to help in that department.

    • @CRG
      @CRG  Місяць тому +2

      It would be cool so see some other software make use of the SID. I'm just not sure how much overhead is available for say running a game or a demo at the same time.

    • @AnnatarTheMaia
      @AnnatarTheMaia Місяць тому +2

      @@CRG should be at least on par with the MOS 6502 / 6510... on the Commodore64, the SID is also driven by the CPU, and the Z80, while slower, has the higher clock frequency to compensate. Post scriptum: I forgot that the Z80 has to emulate the 6502 replayer code, since the replay routine is fused with the actual SID tune.

  • @paulcollins3725
    @paulcollins3725 Місяць тому

    What an absolute time-filler this was, as usual. Thanks indeed.

  • @dreamvisionary
    @dreamvisionary Місяць тому +1

    Sacrilege... even the SID is objecting to playing 😂

    • @CRG
      @CRG  Місяць тому

      LOL, it just needed some persuasion and someone how knew how the programmer worked 😅

  • @vanhetgoor
    @vanhetgoor Місяць тому +1

    Frankenstein some new life into a forty-plus years old SID chip.
    Yeah that is innovation, but now I am ironic. The real MOS Chips are dying like pestiferous flies, the decay starts with some crackling sounds in one or two channels. What is the use of playing old Commodore 64 songs on a Spectrum? The General Instruments soundchip that is used in the later models of the Spectrum is also used in numerous other computers, like Amstrad, Enterprise, MSX and in that AY89xx series of soundchips there are a few that excel this standard soundchip to unimaginable sounds, like real samples and FM sound generation, real instruments worthy of being used in a synthesizer. What's next, the soundchip from the PET?
    By now everybody knows how ingenious the music of the Commodore 64 was, not making chords but playing two different tones alternating very short after each-other, this trick makes this the music sound very lively and impossible to play on real instruments. It is a trick, millions of people got hooked on it. By the way, did you know that the SID chip is slightly out of tune?
    I gave you a thumbs-up for the effort.

    • @kaitlyn__L
      @kaitlyn__L Місяць тому

      I never put the SID output into a tuner, but being slightly out of tune perhaps explains why it doesn't twig my ear the same as most A440 music. Because all the pianos I grew up around in music lessons were old European A435 pianos, so my ear prefers things to be a little "flat" (from an A440 perspective anyway) haha.

    • @vanhetgoor
      @vanhetgoor Місяць тому

      @@kaitlyn__L Often pianos in public houses are tuned lower, the reason is not the anciennity of the instrument but the easiness for the crowd to sing along.

    • @kaitlyn__L
      @kaitlyn__L Місяць тому

      @@vanhetgoor I’m not talking about train station or pub pianos, those are noticeably super duper flat. I mean in my music schools, they were just European pianos from the 1920s through to the 1950s or 60s.
      American pianos had adopted A440 by the 1920s or 30s, so A435 pianos in America are usually 19th century antiques. But in Europe A440 wasn’t codified until I believe the 1970s, and plenty of very high quality and fairly modern A435 pianos were built after the war. My schools in the 90s and 00s just happened to have leftovers from then.
      Even back when I was going to those schools, recordings of a brand new concert grand sounded too sharp to me. Even moreso in the low end, but I know that’s because of stretched tuning in uprights rather than due to the calibration of A.

    • @vanhetgoor
      @vanhetgoor Місяць тому

      @@kaitlyn__L Ah, you jumped from school to school. I know It is a well-known phenomenon that boys' choirs cannot reach the highest heavenly notes every time at early mass in church if they have slumped the night before. Therefore in church the instruments were tuned low, just like in café's, what a coincidence!

    • @kaitlyn__L
      @kaitlyn__L Місяць тому

      @@vanhetgoor yeah, unfortunately I moved between various different music departments. Going from one which had an orchestral focus on group playing, to another which only cared about piano was quite annoying. I don’t think the churches had pianos in though, any music was just choral or played over speakers. These were in lecture halls, music classrooms, and aaall the practice rooms at the separate music academy which leant-out teachers to schools in the area of my first school.
      Like, you _are_ aware that A435 pianos are that way due to the sizing and resonance of their cabinets, right? It’s not just a tuning decision for the strings? If you tune an A440 piano to 435 it sounds dull, and similarly if you tune an A435 piano to 440 it sounds thin. This is the biggest important piece of information here, but you keep going back to intentionally detuned A440 pianos.
      I’m happy to continue a discussion if it will be interesting, but it’s beginning to feel slightly circular right now; almost as if you think I’m just missing knowledge about situations where an A440 piano body would be tuned flat. If that’s not your intent, that’s fine, but that’s definitely the implication I’m picking up.

  • @Mr.1.i
    @Mr.1.i Місяць тому +1

    If any sound is on the tape the boarder with alternate colors even if its music the boader will distort

    • @CRG
      @CRG  Місяць тому +1

      Thanks for clarifying, I didn't know that.

    • @Mr.1.i
      @Mr.1.i Місяць тому +1

      @@CRG put a trance record through it the border should flash a blue and yellow pulse with the drum beat

  • @bufordmaddogtannen
    @bufordmaddogtannen Місяць тому

    Once a Specturd, always a Specturd. 😂
    Still a cool video though.