Jump to content
IGNORED

Atarisid VI


ivop

Recommended Posts

I've not looked at this one on the inside but I would guess like the earlier one near saturation for the Sid emulation part which leaves those few cycles per scanline remaining for the tracker to execute.

So, no go for in-game or loading. With a little sacrifice in quality would probably go fine with a sparse title screen.

Link to comment
Share on other sites

Sid emulation, but for this version some (all?) of the noise type is translated and Pokey noise used.

 

Yes, all noise is done with pokey's own noise generators. The range is limited though, because we are in 15kHz mode. No huge table is used (like it was in sid2gumby) to convert the frequency values, but a rough approximation.

Link to comment
Share on other sites

ok... again my question if this could be used on other 6502 machines like Atari Lynx? does this play only with volume bits (so samples) or does it use actually "pokey" and does a sid-freq2pokey-freq translation?

 

Most of the sounds (sawtooth, triangle, pulse) are played with the volume only bits. Starting at version 6, noise is not played that way, but pokey's own noise generator (distortion 8 ) is used, because it sounds better :)

Edited by ivop
Link to comment
Share on other sites

Volume-only synthesis is great because you can get 16-bit frequency accuracy on all three channels which means pitches are much closer to perfectly in-tune than POKEY's standard 8-bit frequencies. Of course, the downsides are high CPU usage and aliasing due to down sampling to 15KHz. I would love to see more duty cycle steps as I think smooth duty cycle sweeps are a key feature of a lot of SID instruments.

Link to comment
Share on other sites

Volume-only synthesis is great because you can get 16-bit frequency accuracy on all three channels which means pitches are much closer to perfectly in-tune than POKEY's standard 8-bit frequencies. Of course, the downsides are high CPU usage and aliasing due to down sampling to 15KHz. I would love to see more duty cycle steps as I think smooth duty cycle sweeps are a key feature of a lot of SID instruments.

Actually, you could use one 16 bit channel with filter AND replay 2 of the SID voices via sampling.

 

Using POKEY's modulation features, results in many waveshapes without huge amounts of CPU...

 

Things sometimes need a chance ... to prove things

 

 

REminder: RMT limits, 50Hz VBI programming!

 

 

An environment that allows full emulations and to create the "cpu saving stuff" manually, well, that would be the next step ...

Edited by emkay
Link to comment
Share on other sites

I don't think he's using 16-bit channel/s, the volume-only nature of the emulation makes the Pokey audio mode irrelevant unless you're using timer IRQs as the sample timebase - except for the noise which already as stated is 15 KHz based (using an 8-bit AUDF ?)

 

Sid emulation reproduces the phase accumulator relationship with their 16-bit freq registers and what you need to do is reproduce what value it would have from one sampling period to the next. Obviously the emulation is near cycle-accurate but it's only producing amplitude changes at about 1/64th of what a real SID at 1 MHz does.

Although even PC based emulation would only be producing audible changes at best at the rate the sound hardware is operating at which might be 41, 48, 96, 192 KHz in most cases.

 

Atari suffers a bit more since we can only do 4-bit rather than 8-bit amplitude representation and per scanline sampling is somewhat less than the PC will do in most cases.

  • Like 1
Link to comment
Share on other sites

except for the noise which already as stated is 15 KHz based (using an 8-bit AUDF ?)

 

Yes, 8-bit AUDF for each channel. You can have three different frequencies of noise at the same time. That's also the reason why I moved to channel 2, 3 and 4, because I can't change AUDF1 as that's used for the timer interrupt.

  • Like 1
Link to comment
Share on other sites

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

 

I'm not sure what exactly you are asking here, but if you mean whether it is possible to write a tracker/player that uses this replay core and bypasses the SID registers and ADSR emulation, yes, that would be possible.

If you mean to use it to extract tracker like data from the SID files itself, I'd rather use siddump on a PC. It does a pretty good job on detecting vibration. I don't think it's that hard to massage its output into something useful.

Edited by ivop
  • Like 1
Link to comment
Share on other sites

 

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 ;)

 

Just an FYI.. this patch seems to break the Tempest Xtreem Demo.

Link to comment
Share on other sites

http://www.atarimania.com/game-atari-400-800-xl-xe-tempest-xtreem_23225.html

 

Just start a game... the emulator crashes after about 10 seconds.

 

I can't reproduce it. Latest git checkout, plain autogen.sh, ./configure et cetera on debian stable. Perhaps we should move this discussion to PM. If you send me more info, maybe I can pin down where and why it crashes on your machine.

Link to comment
Share on other sites

Could you point me to a song where it is very noticeable, preferably one I already converted? :)

 

It's most noticeable on long sustained notes but I notice it in other situations as well.

 

For an example, start as6-alien.xex in Altirra, enable View -> Show FPS, and then fast forward with "F1" until about cycle 6840 (time 2:14 in the .SID file). There you'll get to a part where the lead instrument on channel two sustains several long notes with slowly changing duty cycle. You can distinctly hear the points in time at which the timbre changes as the duty cycle thresholds that you've implemented are crossed. In contrast, on the SID, the instrument gradually changes timbre without any discrete jumps.

Link to comment
Share on other sites

 

I can't reproduce it. Latest git checkout, plain autogen.sh, ./configure et cetera on debian stable. Perhaps we should move this discussion to PM. If you send me more info, maybe I can pin down where and why it crashes on your machine.

 

OK thanks. Turns out I was using older source.

Link to comment
Share on other sites

 

It's most noticeable on long sustained notes but I notice it in other situations as well.

 

For an example, start as6-alien.xex in Altirra, enable View -> Show FPS, and then fast forward with "F1" until about cycle 6840 (time 2:14 in the .SID file). There you'll get to a part where the lead instrument on channel two sustains several long notes with slowly changing duty cycle. You can distinctly hear the points in time at which the timbre changes as the duty cycle thresholds that you've implemented are crossed. In contrast, on the SID, the instrument gradually changes timbre without any discrete jumps.

 

Thanks, I'll use that song as a test song. Currently, I have a new version with a heavily reduced memory footprint. 9.5kB instead of 22kB (but configurable at compile time for songs that do need the mixed waveforms).

Now it should be possible to add extra duty cycles without running out of memory. At least eight, perhaps more. Stay tuned ;)

  • Like 4
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...