Jump to content
IGNORED

SID Emulation Re-Revisited: Atari Sid IV


ivop

Recommended Posts

Thanks Phaeron, for sharing your insight. Perhaps some variant of this might find its way into a future version!

 

Heaven, here's the relevant posting in the sid2gumby thread: http://atariage.com/forums/topic/199103-teaser-sid-2-gumby/?p=2542066

 

It's very important to notice that the resulting (patched) .sid disassembly is reassembled with atasm -r as to not include the ffff-header.

 

If you're still having problems, please post a more elaborate description of the problem(s) you are facing so I can better help you solve them.

 

Also, I suggest you start with a .SID which is known to work. Some players reset the ADSR envelope in such a way that it is impossible to detect that outside of the player loop and those will not work without rewriting parts of the disassembled sid-file.(player here refers to the original c64 player code).

Link to comment
Share on other sites

Ivop... basicly what is the way to go to get a own composed SID into A8 then?

 

As emkay pointed out, you can create them with a C64 tracker :) For example, all the Metal Warrior 2 songs were created with Sadotracker (Cadaver/Covert Bitops). The player routine is pretty small and fast. During playback with Atari Sid IV you can see little notches in the volume bars. That's the point during the frame where the player and sid register emulation is finished. The faster the player, the higher up the screen those notches appear. Compare Hubbard, Tel and Cadaver and you'll see what I mean.

  • Like 1
Link to comment
Share on other sites

As emkay pointed out, you can create them with a C64 tracker :) For example, all the Metal Warrior 2 songs were created with Sadotracker (Cadaver/Covert Bitops). The player routine is pretty small and fast. During playback with Atari Sid IV you can see little notches in the volume bars. That's the point during the frame where the player and sid register emulation is finished. The faster the player, the higher up the screen those notches appear. Compare Hubbard, Tel and Cadaver and you'll see what I mean.

btw: Thanks for the best "Cybernoid 2" on the A8 ... yet

Really, you can listen through the tune without a ear gets broken ;) , and all necessary variations were in it. It sounds sweet from the start to the end.

Link to comment
Share on other sites

thanks Ivop... I am just coder... but we got in Desire more musicans than Triace who knows RMT... but rest know to compose e.g. SIDs, too... just wondering if I can implement these musics, too... so its not only Triace ;)

There's just one oddity ;)

Imagine a demo that plays those "software SID" during loading, and then it turns into that powerless beepy and scratchy out of tune desaster, called POKEY tune, as used in most demos.

If you consider to implement those "software SIDs" , you'd have to do a rework of the "overall sounding" of any "POKEY tune", to keep at least a sounding style in common.

Link to comment
Share on other sites

This gets me into lemon to see if there's any attempt to get POKEY there and that doesn't exist, what a shame!

Ok just kidding and keep your hard and good work but I don't want to start another vs thread, what was missing on the past was the games on A8, because on they were at least on the music Warhawk, Draconus, Zybex, International Karate,... were much better on A8 but thats my taste and I don't know a shit of music

Edited by José Pereira
Link to comment
Share on other sites

This gets me into lemon to see if there's any attempt to get POKEY there and that doesn't exist, what a shame!

Ok just kidding and keep your hard and good work but I don't want to start another vs thread, what was missing on the past was the games on A8, because on they were at least on the music Warhawk, Draconus, Zybex, International Karate,... were much better on A8 but thats my taste and I don't know a shit of music

The IK Tune isn't even complete on the A8.

 

And, there still is the solution, to use SID emulations with POKEY's generators. But, for that a ... do ... "dedicated Tracker" .... loop ;) .... is needed, to edit the "synth-sounds" fitting to the needs of the tune.

Link to comment
Share on other sites

Interesting progress. What about expanding the tables to try a minimal SID-filter emulation? IMO a detailed one wouldn't really be needed anyway, because also different older & newer C64s sound differently.

 

(I'm also living in the Netherlands and currently my age is 34.)

Edited by analmux
Link to comment
Share on other sites

I like the integrate with SIO idea... in fact it might actually work but likely in 19.2 k speed only with a poll-driven loader.

 

So in the future we have awesome SID-Music while the game is loading and "simple" POKEY sound in the actual game/demo? Hilarious :)

But then again, noone can say C64 has better loading music :P

Edited by Creature XL
Link to comment
Share on other sites

Some more info I probably should have put in the first post :)

 

Replay rate is 15.6 kHz, just like version 3 (version 2 was 7.8 kHz).

 

The extra cycles were saved by doing a single INC IRQEN (an RMW instruction) to clear and reset the timer 1 interrupt bit.

Also, I went back to a single channel, which indeed does slightly degrade the sound quality, but as Philsan said, imho that's acceptable if it leaves more CPU time for other things (like a Pokey player, PMG based scroller, or perhaps a SIO loader).

 

To reply to emkay why it actually saves time to add the channels instead of storing them to Pokey directly:

version 3:

lda $1234
sta audc1
lda $5678
sta audc2
lda $9abc
sta audc3

24 cycles


version 4:

lda $1234
clc
adc $5678
adc $9abc
sta audc1

18 cycles

So, when only two SID voices are used it saves 4 cycles and increases the sound quality back to $0-$7 or at least $0-$06.

Given teh fact the three POKEY voices arew available it could be very interesting. For a loading tune two channels might be enough.

OTOH, s I learned with my neat old-school loading screen for MJO you get bad feedback if oyu do not support loading with 112baud. So the loader music idea is maybe not that good :(

 

 

Link to comment
Share on other sites

So in the future we have awesome SID-Music while the game is loading and "simple" POKEY sound in the actual game/demo? Hilarious :)

But then again, noone can say C64 has better loading music :P

Oh, will this system handle SID and samples tunes during loading like C64 demos have been doing since the late 1980s...?

Link to comment
Share on other sites

Oh, will this system handle SID and samples tunes during loading like C64 demos have been doing since the late 1980s...?

 

Sure it will. After all the replay is basically a sample player ;)

Honestly, don't know and don't care. When I would use such a player for the main loading part of my current game I won't get much love as it loads lots of data and hi-speed SIO is very useful. And the data loaded between the stages is so small lthat even slow SIO just needs 5-6 seconds. So not worth to make a music for this part. :P

 

Isn't even on the C64 the loader music only useful for the normal speed floppys and tapes? Or is it still used with turbo chargers and what not?

 

 

Back to topic. I heard some of the tunes and I love the sound (regarding they are playin gon an A8). Very good job. Hopefully someone puts this to use in a real production... HEAVEN? :P

Link to comment
Share on other sites

So in the future we have awesome SID-Music while the game is loading and "simple" POKEY sound in the actual game/demo? Hilarious :)

But then again, noone can say C64 has better loading music :P

1. POKEY Sound isn't that simple ;)

 

 

It's just the software that doesn't allow further development.

  • Like 3
Link to comment
Share on other sites

Isn't even on the C64 the loader music only useful for the normal speed floppys and tapes? Or is it still used with turbo chargers and what not?

2. It's just that the "music" in C64 demos just plays ... if loading or not...

 

On the A8 this means to create soundtracks that take more usage of "digi" sounds, when something is loading, and use POKEY's generators in a close variation of sound-types...

Link to comment
Share on other sites

Here's a preview (prelisten?) of Atari Sid V. I incorporated phaeron's idea mentioned earlier this thread and added some more changes. CPU usage is now down to 75-78 cycles per scan line, which I guess is pretty nice compared to 96 (v3) and 86 (v4).

Compare the "notches" in the volume bars between v4 and v5 ;) Cybernoid's player routine is pretty slow compared to, for example, that of Sadotracker, so the difference can be seen fairly good. The bad thing about v5 is that it now uses 26kB for tables during runtime, instead of 13kB :)

 

@analmux: I have thought about filters a lot and it is not easy as just adding a bunch of tables. It means, for every channel, that the new sample value depends on the previous value, on the frequency setting of the filter and whether it's low-pass, high-pass or band-pass. In any case, it'll slow down the softsynth core tremendously, if at all possible :)

 

atarisid5-preview-src.zip

atarisid5-preview-xex.zip

  • Like 4
Link to comment
Share on other sites

Isn't even on the C64 the loader music only useful for the normal speed floppys and tapes? Or is it still used with turbo chargers and what not?

It's more the other way around, the stock tape or disk loaders don't allow interrupts running so there's a custom loader running if it's playing music and that'll always be a fastloader of some kind since it'd be daft not to. =-)

 

For disk-based stuff the loader usually sits at runtime with the demo executing on interrupt so to loader just takes whatever free cycles are there; that means you can play multi-channel samples, produce multiple voices from one SID channel, run a mutlispeed driver (Cycle by Booze Design is quad speed for example) or whatever and the loader still works with however many cycles it can scavenge.

 

Tape has the loading on either IRQ or NMI because it's more timing sensitive, so the program only gets whatever time is left free at runtime but that's enough to do scrolling messages, open the upper and lower borders, play music or even run a game - Dragon's Lair 2 loads the next level as the current one is being played.

Link to comment
Share on other sites

About SID Filters.

Have you ever thought of using the delay of the 4 pokey channels, to produce a pulse width modulation ?

This would work also a reverb, a overdrive,... and in a controlled way, it sounds like low pass filters.

 

Offset programming and phase control of the analog output creates the resulting sounds.

Link to comment
Share on other sites

Er, what rate is the IRQ intended to run at? The debugger is showing the IRQ running erratically driven by timer 4 at 64KHz (IRQEN=$F4, AUDF4=$00, AUDCTL=$50). Did you intend for timer 4 to run at 15KHz (AUDCTL=$51)?

 

I intended to run timer 1 at 15.6kHz :D Something got messed up somewhere after version 2, but not quite enough to be audible I guess.

Does this fix it? (I cannot run Altirra on my nine year old computer).

atarisid5-preview-cn-try2.xex.zip

Link to comment
Share on other sites

 

I intended to run timer 1 at 15.6kHz :D Something got messed up somewhere after version 2, but not quite enough to be audible I guess.

Does this fix it? (I cannot run Altirra on my nine year old computer).

 

Yeah, timing looks regular now.

Link to comment
Share on other sites

Emkay I wasn't dreaming this morning! What a Big Big Shit!... I listened that right on the 1st time and now for more than 2hours listening it all, some parts, back and forward and no way. It is getting me crazy and I am not crazy, at least untill now I think that I wasn't ;).

I think it is just one time, maybe between two songs (back then I didn't payed attention and wasn't even thinking of post something). It's the sound of when you throw your ball and maybe, I think, something similar to the 'Tilt' when the ball goes against a light sounding object on a flipper machine.

Now I give up, sorry but for today is too much of listen and I can't also see those colouring cyclings. I will try again tomorrow:-)...

HELP!... Anyother wants to try to find this?

Thanks.

Edited by José Pereira
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.
Note: Your post will require moderator approval before it will be visible.

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...
  • Recently Browsing   0 members

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