ivop Posted November 15, 2016 Share Posted November 15, 2016 Hi all, Atarisid is a software emulation of the SID soundchip used in the Commodore C64. Recently, a conversation with wrathchild got me interested in atarisid again and here's the result. What's new in version 6? - Use three pokey channels instead of one - Newly calculated wave forms - Higher fidelity and dynamic range (over 21dB per channel) - Use pokey noise generators for a much cleaner sound and different frequencies of noise - Disables basic at startup - 34 new songs for a total of 64 (which is not a coincidence ) Adam Gilmore - Ninja Commando Adam Gilmore - Zybex Ari-Pekka Paljakka (Zardax) - Retrograd Ben Daglish - Bulldog Ben Daglish - Cobra Ben Daglish - The Vikings Ben Daglish - Thing Bounces Back Chris Huelsbeck - Metro Dance David Whittaker - Glider Rider David Whittaker - Loopz David Whittaker - Speedball Hein Holt (Hein) - Alien Seahorses Invading Heaven Jens-Christian Huus - No Filter Jeroen Tel - Alternative Fuel Jeroen Tel - JT42 Jeroen Tel / Maniacs of Noise - Alloyrun Jeroen Tel / Maniacs of Noise - Cybernoid Jeroen Tel / Maniacs of Noise - Cybernoid II Jeroen Tel / Maniacs of Noise - Hawkeye Jeroen Tel / Maniacs of Noise - Ice Age Jeroen Tel / Maniacs of Noise - Kinetix Jeroen Tel - Myth Mix Jeroen Tel - Noisy Pillars Jonathan Dunn - Ocean Loader 4 Lasse Oorni (Cadaver) - Aces High Lasse Oorni (Cadaver) - Escape From New York Lasse Oorni (Cadaver) - GoatTracker Example (MW1 Title) Lasse Oorni (Cadaver) - Metal Warrior Lasse Oorni (Cadaver) - Metal Warrior 2 Lasse Oorni (Cadaver) - Nintedo Metal Lasse Oorni (Cadaver) - Tarantula Lasse Oorni (Cadaver) - Unleash The Fucking Fury Mark Cooksey - Battle Ships Martin Galway - Ocean Loader 1 Martin Galway - Ocean Loader 2 Peter Clarke - Ocean Loader 3 Reyn Ouwehand - What Have I Done To... Rob Hubbard - Chimera Rob Hubbard - Commando Rob Hubbard - Crazy Comets Rob Hubbard - Delta Rob Hubbard - IK+ Rob Hubbard - International Karate Rob Hubbard - Lightforce Rob Hubbard - Monty On The Run Rob Hubbard - Ninja Rob Hubbard - One Man And His Droid Rob Hubbard - Sanxion Rob Hubbard - Spellbound Rob Hubbard - The Master Of Magic Rob Hubbard - Thing On A Spring Rob Hubbard - Warhawk Stellan Andersson (Dane) - Escape From Reality Stellan Andersson (Dane) - The Slap Mix Thomas E. Petersen (Laxity) - Freeze Thomas E. Petersen (Laxity) - Highscore Thomas E. Petersen (Laxity) - Syncopated Thomas E. Petersen (Laxity) - Wisdom Thomas Mogensen (DRAX) - Scarlet Thomas Mogensen (DRAX) - Spunk Timo Taipalus (Abaddon) - Hamlet Tomas Danko - Groove Torben Hansen (Metal) - Ramloesa Volker Meitz (PRI) - Pool Party atarisid6-xex.zip atarisid6-src.zip 14 Quote Link to comment Share on other sites More sharing options...
+MrFish Posted November 15, 2016 Share Posted November 15, 2016 Hi all, Atarisid is a software emulation of the SID soundchip used in the Commodore C64. Recently, a conversation with wrathchild got me interested in atarisid again and here's the result. What's new in version 6? - Use three pokey channels instead of one - Newly calculated wave forms - Higher fidelity and dynamic range (over 21dB per channel) - Use pokey noise generators for a much cleaner sound and different frequencies of noise - Disables basic at startup - 34 new songs for a total of 64 (which is not a coincidence ) Nice improvements. Thomas E. Petersen (Laxity) - Wisdom I like this composition a lot. Quote Link to comment Share on other sites More sharing options...
shanti77 Posted November 15, 2016 Share Posted November 15, 2016 (edited) Super, Cybernoid 2 sounds like original from c64 Edited November 15, 2016 by shanti77 Quote Link to comment Share on other sites More sharing options...
Kyle22 Posted November 16, 2016 Share Posted November 16, 2016 Thanks so much for making this 'C02/'802/'816 friendly! This is really great sounding. Brilliant work. Quote Link to comment Share on other sites More sharing options...
rdefabri Posted November 16, 2016 Share Posted November 16, 2016 Seems not to be working on Atari800WinPLus - anyone else having an issue or are most on Altirra? Quote Link to comment Share on other sites More sharing options...
makary Posted November 16, 2016 Share Posted November 16, 2016 I've just listened to only a few tunes... but wow! So many SID specific nuances are so convincingly reproduced. Really impressive, respect. 1 Quote Link to comment Share on other sites More sharing options...
ivop Posted November 16, 2016 Author Share Posted November 16, 2016 Seems not to be working on Atari800WinPLus - anyone else having an issue or are most on Altirra? Atari800WinPlus does not correctly emulate Read-Modify-Write instructions on pokey registers. Neither does the current atari800, but there's a patch here: https://sourceforge.net/p/atari800/mailman/message/34233143/ Altirra works fine, but it's enjoyed best on real hardware 2 Quote Link to comment Share on other sites More sharing options...
Xuel Posted November 16, 2016 Share Posted November 16, 2016 This is excellent! Question: It seems like your pulse wave duty cycle has greatly reduced resolution compared to the 12-bit resolution of the SID. How many steps do you support? Would adding more blow up the required number of tables beyond available memory? 1 Quote Link to comment Share on other sites More sharing options...
ivop Posted November 16, 2016 Author Share Posted November 16, 2016 (edited) This is excellent! Question: It seems like your pulse wave duty cycle has greatly reduced resolution compared to the 12-bit resolution of the SID. How many steps do you support? Would adding more blow up the required number of tables beyond available memory? It currently supports 20%, 40%, 60% and 80%. If I were to keep all the 8580 waveform mixing capabilites adding more pulsewidths would indeed exceed the available memory. I am thinking about removing those though as they are hardly ever used on 6581 tunes. Mapping them all to either pulse or triangle might be enough. That will open up two new possibilities. 1) all the tables will fit in one cartridge bank, or 2) more pulsewidths or more volume levels (also 4 right now). Edited November 16, 2016 by ivop 2 Quote Link to comment Share on other sites More sharing options...
Wrathchild Posted November 16, 2016 Share Posted November 16, 2016 Altirra works fine Its also great to switch on the Audio Monitor under the System/Audio menu 1 Quote Link to comment Share on other sites More sharing options...
Heaven/TQA Posted November 17, 2016 Share Posted November 17, 2016 amazing... Quote Link to comment Share on other sites More sharing options...
+MrFish Posted November 17, 2016 Share Posted November 17, 2016 Any possibility of detecting and compensating for speed difference on NTSC machines in the future? Quote Link to comment Share on other sites More sharing options...
Heaven/TQA Posted November 17, 2016 Share Posted November 17, 2016 btw. how to convert my own .SIDs to the player? and what is those 3 IRQ mode you mention in the source code? Might it be possible to adapt for other consoles? Like 5200/7800 or even Atari Lynx? (I am searching for nice player...) Quote Link to comment Share on other sites More sharing options...
Neo-Rio Posted November 17, 2016 Share Posted November 17, 2016 Would ideally like to know if there's a way to make a player that can play the C64's SID library on the Atari.... just because you can. Also, the reverse has been done too. The SID has been cajoled to play the POKEY to some extent. See here: http://csdb.dk/release/?id=148198 1 Quote Link to comment Share on other sites More sharing options...
ivop Posted November 17, 2016 Author Share Posted November 17, 2016 (edited) Any possibility of detecting and compensating for speed difference on NTSC machines in the future? Ah, I forgot all about that. This is doable as wrathchild already did it with as5. The other way around, i.e. playing NTSC tunes faster on a PAL machine, is a bit trickier. btw. how to convert my own .SIDs to the player? and what is those 3 IRQ mode you mention in the source code? Might it be possible to adapt for other consoles? Like 5200/7800 or even Atari Lynx? (I am searching for nice player...) I have little time atm, but I could write a full guide in the future. In short it comes down to this: You need sidreloc, siddasm2, atasm, atarisid6 sources, mads - find a sid file that's not too big and would fit in $9000-$bfff (preferably $a000-$bfff) - relocate the sid file; relocate zero page to $d0-$ef ($c0-$ff max); relocating to $9000 sometimes fails when relocating to $a000 works - test resulting sid file - disassemble with siddasm2 - replace 29 equates at the top with the contents of remap.txt (remapping the sid hardware registers) - fix ill instructions, L_00xxx references and unknown labels (there are three scripts to automate that, or run fixall.sh foo.dis) - assemble with atasm -r - copy binary to songs directory, create corresponding .inc - use setsong.sh to set the song name and use build.sh to build a.xex and test - or run buildall.sh and test the file in xex/. Some tunes need further patching (see for example zybex.dis, included in the songs directory) because those players toggle the gate bit twice within one call to the player routine and this would go unnoticed by the adsr emulation. edit: the three irq thing refers to the three different irq routines that are run in a round-robin way. See irq.inc for those routines. Edited November 17, 2016 by ivop 3 Quote Link to comment Share on other sites More sharing options...
Heaven/TQA Posted November 17, 2016 Share Posted November 17, 2016 Ah thanks! I was not aware of those scripts Quote Link to comment Share on other sites More sharing options...
emkay Posted November 17, 2016 Share Posted November 17, 2016 One question: If it is possible to filter the SIDs, to get played with that player, shouldn't it be possible to build clean 3 channel Tracker files Quote Link to comment Share on other sites More sharing options...
Stormtrooper of Death Posted November 17, 2016 Share Posted November 17, 2016 I downloaded all the XEX files and put it on a real 5.25 inch floppy to try on my 130XE. it works nice with Bibodos. But i am trying to get it to work with a menu system on my 130XE. SpeedMenu 3 loads all nice, but i am not able to do a hard reset. So, i tried some others that do the hard reset. But some of the XEX files dont work. even while most of the front screens with the info about the song show on the screen. Anybody an idea for a nice menu that uses RESET good. Oh, i put the files on several floppys in 180K DD format. Quote Link to comment Share on other sites More sharing options...
Wrathchild Posted November 17, 2016 Share Posted November 17, 2016 (edited) Ah, I forgot all about that. This is doable as wrathchild already did it with as5. The other way around, i.e. playing NTSC tunes faster on a PAL machine, is a bit trickier. Employing the same technique as before, which was to adjust the ASDR timing table by 5/6 and skip one frame after having done five. This kicks in by itself if NTSC is detected and so the same executable runs PAL too. The results seem to come out OK in Altirra. I will try if I have time at the weekend to incorporate this into Ivo's v6 source and an updated set of the existing binaries can be built. I had a slightly different approach to the porting of a SID which involved hand editing the SID file in a hex editor to remap and spotted SID area read/write to the A8 player's shadows. Once hooked into the player then Altirra debugging could easily spot any missed, e.g. used a write-to detection between when the PC is in the SID player's code area. Additionally, any zero-page writes could affect the IRQ routine and so these should, as pointed out earlier, be remapped - but for example in Sanxion I tweaked the irq.inc to leave a hole where the SID player wrote to. To get around loading of a SID player's code/data under the OS, I delegate that to exomizer and then included the self-extracting code during the loading. Just Sanxion in this set does that, but during this the font is lost (which is easy to fix). Regards, Mark HyperSportsSid.xex OceanLoader1Sid.xex OceanLoader2Sid.xex SanxionSid.xex SpdBallSid.xex Edited November 17, 2016 by Wrathchild 3 Quote Link to comment Share on other sites More sharing options...
Yautja Posted November 17, 2016 Share Posted November 17, 2016 Sanxion (or better called, Thalamusik) sounds wonderful. I wish you could also take in account this song: - Y - Quote Link to comment Share on other sites More sharing options...
bugbiter Posted November 17, 2016 Share Posted November 17, 2016 Wow! Nice! never knew this was possible :-) Doesn't sound like pokey at all! Quote Link to comment Share on other sites More sharing options...
Neo-Rio Posted November 18, 2016 Share Posted November 18, 2016 (edited) Really should be porting all of these SIDs that haven't already been done! http://www.transbyte.org/SID/HVSC_Top100.html Edited November 18, 2016 by Neo-Rio Quote Link to comment Share on other sites More sharing options...
Jacques Posted November 18, 2016 Share Posted November 18, 2016 Barbarian, please? Quote Link to comment Share on other sites More sharing options...
R4ngerM4n Posted November 18, 2016 Share Posted November 18, 2016 Any youtube videos available? Quote Link to comment Share on other sites More sharing options...
Heaven/TQA Posted November 18, 2016 Share Posted November 18, 2016 what is CPU usage for the player? (of course depending on the features and included SID player code) Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.