Jump to content
IGNORED

SID Emulation Re-Revisited: Atari Sid IV


ivop
 Share

Recommended Posts

Creature... I would if I could use straight away the source and sid converter ;) but right now it would take too much efford to convert each time this strange asm format so that's why I am more into Atari 8bit successor - Amiga ;)

 

OK, I finally bit the bullet. Here is preview3 of Atari Sid V with sources in MADS format!

Should be 100% similar to the shasm65 version :)

atarisid5-preview3-src.zip

atarisid5-preview3-cn-xex.zip

  • Like 3
Link to comment
Share on other sites

Btw. I wonder if this one can be emulated (even partially): http://csdb.dk/release/?id=87985

 

(everyone has dreams, I know)

It seems like you could apply the same technique as RastaConverter to digital sound. Analyze the frequency content of the source sample, then run models of Pokey output with all possible settings and make a table to roughy follow the same frequency spectrum without using samples. It would probably be recognizable but 'electronic' sounding.

Link to comment
Share on other sites

I'm not sure that using Pokey emulating SID doing digital sample playback would be of much use. Probably be more effective to just adapt what samples are being generated to work with Pokey or Covox.

 

Does the SID emulation even allow arbitrary waveform initialization as would be required for the higher fidelity type of sampling ?

Even then, on the C64 they have to set test bit, store new frequency value then clear test bit in quick succession to get each new sample going and all in something like 1-2 scanlines per sample.

Edited by Rybags
Link to comment
Share on other sites

Btw. I wonder if this one can be emulated (even partially): http://csdb.dk/release/?id=87985

 

(everyone has dreams, I know)

 

Something like this could be done on the Atari, but as Rybags said, it would be best to output the uncompressed "mp3" directly on a pokey or covox channel.

There's also this C64 demo that uses its sound generators to approximate a waveform. And finally there's a C64 demo that uses a fixed dictionary/codebook of waveshapes and uses indeces into that to compress a larger sample by a factor of eight. (sorry, don't have links handy atm).

 

Thanks. Would it be possbile to make a special version that would output to the real 8bit DAC like the highend Covox option on my RAM cards?

 

Yes, that would be possible. The tables have to be adjusted to use a wider dynamic range. [0..85] per voice for replay on a single DAC or [0..255] for three DACs (which will consume slightly more CPU cycles again). Also, the RLE compression of the tables won't be very effective anymore. I guess a delta encoder preceding it might fix that.

Link to comment
Share on other sites

Nothing so technical as far as I know but its nicely arranged and good use of samples..

Don't know about the technical stuff behind the tune, but it sounds to me like a fast updated SID and standard SID 8580 sounds.

 

Something like this could point to somewhere ;)

 

see the variations and listen to the variations.

 

Could be interesting to put a SID project, using the generators AND the modulations...

 

Edited by emkay
Link to comment
Share on other sites

I've had a chance to experiment with the code behind 'preview of Atari Sid V' and with Ivop's help have succeeded in both loading the SID file data from cartridge and holding and accessing the large data tables from cartridge. This helps in that the SID files do not need to be relocated but they do still need the SID register writes remapped to shadow locations for the A8 player to use.

 

Another fix I've done is to detect if the tune played is PAL and the machine running is PAL/NTSC and adjust timings accordingly, i.e. in NTSC 5 frames are played and one skipped. Feedback on how that sounds welcome, seems ok in Altirra.

 

Edit: The zip file contains ROM files which you should attach as 128KByte/1024Kbit Maxflash images.

EliteAndSanxionSidTunes.zip

Edited by Wrathchild
  • Like 3
Link to comment
Share on other sites

Burned Elite to a 1mb AtariMax Cartridge and playing on real 800XL NTSC sounds good to me | no ear for music but colorful with the bars vibration red white and blue.. I will have to try this on a PAL 800XL with stereo..

Link to comment
Share on other sites

I've had a chance to experiment with the code behind 'preview of Atari Sid V' and with Ivop's help have succeeded in both loading the SID file data from cartridge and holding and accessing the large data tables from cartridge. This helps in that the SID files do not need to be relocated but they do still need the SID register writes remapped to shadow locations for the A8 player to use.

I know , it's getting boring ;) but here is another video showing the possibility.

While the "SID emulation" could be used for loaders , programmed sounds could be used "ingame" ... You also could do mixing of both, or change the usage of sound producing in a song to make a better fit to the available CPU. This means in demos, a tune could get "endless" during the whole processing of the demo...

 

  • Like 1
Link to comment
Share on other sites

I'm not sure what the last post is for emkay, the thread doesn't appear to be about SID emulation being the panacea for replacing everything?

 

Simply the interrupt and conversion overheads are too impractical for most usages. The control a developer / demo coder / RMT user has over the sound is less depending on how often you want to update the POKEY registers on the A8 and would naturally fit that around the demands of the rest of the program.

 

What I find it interesting for is to see how those sound shapes produced through the SID can be modelled on the POKEY. So even as a tool to help devise 'instruments' for the A8 trackers to use, these efforts should be regarded well.

 

What is the video above with the Elite tune bringing new to the table? To me it merely demonstrates the A8 can play a rendition of the C64 tune. Does it differ technically from something produced by RMT?

Edited by Wrathchild
Link to comment
Share on other sites

Tried playing these files in Alltira but the bars just appear and nothing happens. Any ideas?

 

 

I've had a chance to experiment with the code behind 'preview of Atari Sid V' and with Ivop's help have succeeded in both loading the SID file data from cartridge and holding and accessing the large data tables from cartridge. This helps in that the SID files do not need to be relocated but they do still need the SID register writes remapped to shadow locations for the A8 player to use.

 

Another fix I've done is to detect if the tune played is PAL and the machine running is PAL/NTSC and adjust timings accordingly, i.e. in NTSC 5 frames are played and one skipped. Feedback on how that sounds welcome, seems ok in Altirra.

 

Edit: The zip file contains ROM files which you should attach as 128KByte/1024Kbit Maxflash images.

Link to comment
Share on other sites

Tried playing these files in Alltira but the bars just appear and nothing happens. Any ideas?

 

 

Yes - go into the settings and change the CPU type. Not sure which is required, but I know I had to mess with this.

Link to comment
Share on other sites

I'm not sure what the last post is for emkay, the thread doesn't appear to be about SID emulation being the panacea for replacing everything?

Not for everything. You know, the Atari doesn't allow to play a full tune while loading something via SIO.

For that case, the "SID Emulation" counts in. The CPU is fast enough to play digis during loading.

Even the best demos suffer in the fluent presentation, and the biggest part to keep a fluent presentation is to have a tune running continously through a demo.

 

Simply the interrupt and conversion overheads are too impractical for most usages. The control a developer / demo coder / RMT user has over the sound is less depending on how often you want to update the POKEY registers on the A8 and would naturally fit that around the demands of the rest of the program.

Loading stuff via SIO isn't that demandfull. You can use 50 to 80% of CPU time for having a programm running during SIO at 19200 bps. Get it?

 

What I find it interesting for is to see how those sound shapes produced through the SID can be modelled on the POKEY. So even as a tool to help devise 'instruments' for the A8 trackers to use, these efforts should be regarded well.

 

What is the video above with the Elite tune bringing new to the table? To me it merely demonstrates the A8 can play a rendition of the C64 tune. Does it differ technically from something produced by RMT?

It IS RMT at 50Hz usage. The difference is the usage of POKEY's modulation abilities and timed sound programming. Sadly not used in almost all new musics....

 

The most interesting stuff could be that you don't really get the difference between digis and programmed sounds, when a demo, or a game , is running, and the music will always sound "fine"...

Edited by emkay
Link to comment
Share on other sites

Just for clarity... the 'you' hopefully refers to the person listening to the demo/game running music and along the lines of differentiating by those who can and can't perceive a different between, say, a Vinyl LP and a CD. ;)

Depends on how you define Vinyl and CD Quality. There are many Vinyls around, playing a better quality than CDs ;)

 

Depending on the Atari's abilities, you have clear better "basses" when you play digi samples, but you could get crystal clean synths in high ranges, with programmed sounds.

In a demo you could mix them together...

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...