Jump to content

Recommended Posts

I've done this, and the current nonlinear mixing table is based on measurements. The problem is that it's only an approximation, as the actual behavior is frequency dependent.

 

Did you measure the voltage a the Pokey output pin?

 

Strange. I admit that is not exactly my area of expertise, but I wouldn't expect that mixing depends on the frequency, except, may be at very high frequencies perhaps.

 

I would expect that the Pokey output voltage would stabilize in not much more than a couple of cycles, in the worst case. Meaning that for a given state of the voices, the output voltage should always be the same disregarding the frequency. Of course, the external board level circuit might be much slower and the actual volume might depend on the frequency. But then that wouldn't affect the mixing, it would affect the relation between Pokey voltage to volume, and should be the same for a specific Pokey output disregarding the mixing.

 

Did you measure the voltage a the Pokey output pin?

 

Strange. I admit that is not exactly my area of expertise, but I wouldn't expect that mixing depends on the frequency, except, may be at very high frequencies perhaps.

 

I would expect that the Pokey output voltage would stabilize in not much more than a couple of cycles, in the worst case. Meaning that for a given state of the voices, the output voltage should always be the same disregarding the frequency. Of course, the external board level circuit might be much slower and the actual volume might depend on the frequency. But then that wouldn't affect the mixing, it would affect the relation between Pokey voltage to volume, and should be the same for a specific Pokey output disregarding the mixing.

 

No, I don't have the equipment to do that... and I suspect that the effects of the amplifier would be more pertinent. Whether the behavior is coming directly from POKEY's mixer or not is irrelevant, really -- what we're concerned with here is trying to accurately model the whole analog output path. The only real facts that we have are that there is definitely a noticeable nonlinear saturation effect at higher combined volume levels and some effects depend on that. Knowing that there is a frequency dependency isn't enough to model it since a more specific cause is needed, like a slew rate limit. And that's assuming the effect is the same between all models, which if it is amplifier-related it wouldn't be.

  • Like 2

Between models, revisions, dates, and other variances, It seems to me no two machines (or batches of them) would sound precisely the same. So.. what would be the best reference to build the model from?

 

Just changing a capacitor or using an original aged one would provide different results if looked at in detail. Harmonics and resonances would sync up and fall apart all at different rates and intensities so to speak. Phases would move in and out of sync.. and more..

Edited by Keatah

that's the same for all but the most meticulous and expensive audio components even in these days.... the old stuff still falls reasonably within a tolerance of all things, electrically as well as by ear..

Between models, revisions, dates, and other variances, It seems to me no two machines (or batches of them) would sound precisely the same. So.. what would be the best reference to build the model from?

 

Just changing a capacitor or using an original aged one would provide different results if looked at in detail. Harmonics and resonances would sync up and fall apart all at different rates and intensities so to speak. Phases would move in and out of sync.. and more..

 

While this is true, it's unlikely that there's anything as noticeable as C64's 6581 vs 8580 or we'd have heard about it already. It's more of an issue when nitpicking around the "it doesn't sound like my computer so it must wrong" argument. POKEY emulation quality in general crossed the good-enough threshold for most games and most people; these more corner case issues just become exposed as people delve deeper and push the hardware farther.

 

Typically I use an 800XL as the baseline computer to model as it's a decent "average" for most things, but in this case that would have to be determined by sampling other models to tell how much variance there is.

Well whatever the situation I think we're pretty close to real hardware. Star Raiders sounds like Star Raiders from when I was a kid. Only question is do I use linear or non-linear mixing? Maybe the answer is in the documentation, but I'm too lazy to read it at the moment.

http://www.virtualdub.org/beta/Altirra-3.10-test2.zip
http://www.virtualdub.org/beta/Altirra-3.10-test2-src.zip

  • Fixed broken floating-point acceleration option.
  • Fixed modality issues with sub-dialogs spawned from the master configure system dialog.
  • Added new options for controlling when auto-reset occurs. It is now possible to hot-plug carts again.
  • Tape dirty state is now tracked and included in discard confirmations.
  • Added new program load modes to allow emulator-based program loads to occur after cart init or after DOS has booted. Type 3 Poll mode takes advantage of the poll that occurs automatically in the XL/XE OS post-boot and allows the emulator to auto-kick the load after DOS 2.0S or 2.5 finishes booting. Deferred mode disables the automatic load entirely and relies on a manual trigger, which can be done via the new LOADEXE.COM program on the Additions disk for SpartaDOS X.
  • Automatic unloading on Boot Image can now be controlled so that some types of images are left mounted. This is useful when combining image types, i.e. cart+tape or disk+exe.

Has PCLINK.SYS always been putting out all caps filenames. I noticed this and checked the setting and no check mark for lower case like there is in the H: device setting.. I don't remember pclink.sys putting out all caps before 3.10 beta.


Yes, the PCLink hardware emulation doesn't have a lowercase option yet.

 

Well whatever the situation I think we're pretty close to real hardware. Star Raiders sounds like Star Raiders from when I was a kid. Only question is do I use linear or non-linear mixing? Maybe the answer is in the documentation, but I'm too lazy to read it at the moment.

 

Star Raiders is not exactly the most aggressive use of POKEY since most of its sounds have the subtlety of a square wave. The types of sounds that are sensitive to the analog signal handling tend to be the ones that use interference between two high-frequency sounds for variable pulse width effects.

 

Non-linear will be a bit more compressed than linear, but for most games you aren't going to be missing out on sounds by not using it. It was pretty well known advice to keep the total volume level down to avoid distortion. The non-linear curve in recent versions of Altirra also has a sharper kink and larger linear region than early versions.

 

  • Like 5
  • Added new options for controlling when auto-reset occurs. It is now possible to hot-plug carts again.

 

Thanks, I was just thinking about asking you to implement/allow this yesterday.

Edited by MrFish
  • Like 1

I take it no one has decapped a pokey chip as yet, yes I know its a LONG and expensive process....I wonder just how much it actually costs.

Pokey decap thread:

http://atariage.com/forums/topic/182670-pokey-decap/?fromsearch=1

Edited by foft
  • Like 2
I'm very, very enthusiastic about this emulator, that I've been using for years now. I'm a great fan. I'm delighted to get another new version. Did I mention the technical document, which is a real treat too?


Only trouble is: how can I express my gratitude to you, Phaeron? Such an effort, all these long long hours to create something FREE for the community, this deserves a proper "thank you". I'd like to send some money via PayPal, for instance, a little something. How can I thank you for all these wonderful hours playing Boulder Dash, "just like the old days", on my 800XL? I'm 13yo again ;-)





Edited by ldelsarte

Yes, I deliberately avoid monetary donations for a few reasons. I learned the hard way that transferring money is stressful to deal with due to all of the hassle when anything goes wrong. There's also the issue that if any legal issues arise during development, the attitude of a potential antagonist is likely to be poorer if they find you're making money off of it. These problems are avoided by not taking money. The main cost of working on Altirra is time.

 

Now, hardware trades are a different story... not that I've been trying much to acquire hardware. The most useful pieces of hardware I've obtained were an XEP-80, 1030, and SX212, from which I was able to determine a lot of previously unknown behavior... but that's also largely because no one has cared much about them. I'd still love to see a scope put on the 800's video output to find out what the heck it does to get that bizarro green-blue artifacting. Not being able to emulate that properly has been bugging me for a while.

  • Like 6

Convoluted crazy explanation coming up!

the artifacting can be affected by a capacitor swap, I've outlined that for xl/xe fixes when using games without the choice to swap via software, who wants a red or purple looking Christmas Tree?.... or the wrong color ship in Star trek etc etc... While it is a product of pixel proximity pairing as well as order, shifting it ever so slightly moves it enough to change the relationship..

magenta-yellow gives that orange and magenta-cyan gives that blue turquoisey look I think on the XL it's the purplish and greenish look, and the XE was the reverse or the other, unless you had a later chipset on the 800... In any event, I would to load up Jingle Disk select the proper cap to make the tree blueish green and the bricks and fire place the red orange purple colors....

 

red and green make yellow, blue and red make magenta, shift it and yellow+magenta makes orange (see?)

green and blue make cyan, blue and red make magenta, shift it and cyan+magenta makes blue (see?)

 

The reason why it's so hard to nail down is because we are dealing with emitted light wheel that is both additive and subtractive..this is because the clock is shifted ever so slightly... that's the best way to describe it in simple terms... people will argue forever at my poor word choices but when I show someone it affords some understanding.... to complicate this there were two different chips and two or three cap choices if I remember correctly.... this obscured a simple look at it and see what's going on approach.. but it really is this simple.... or ready for this? I had two monitors presented to me that would flip the artifact color, mask? clock decode? this drove us nuts until that was discovered. So the choice to choose was put into some software

 

Load up Ultima and select the color scheme...save it done... (your answers can be drawn from what I've said and looking at these things..)

 

somewhere I documented a little about that on the forums... talked about piggy backing the caps (parallel) for those to lazy to perform a direct swap...

 

For fun load Ultima, Jingle Disk, and Star Fleet?(interstel?) on 800 early 800 late/ 800XL/ 130XE... You will see the color schemes... swap the cap in the XL to match the XE... You can play with the caps in the 800's as well choose a variable cap for some artifact color shifting fun...

 

so we are using additive color (light) and by shifting it just a little obtaining a subtraction effect (pigment)

 

that's not how this works! that's not how any of this works! and yet it does...

this is why Doc Brown seems crazy and talks to Einstein who happens to be pet dog btw!

Edited by _The Doctor__

 

Now, hardware trades are a different story... not that I've been trying much to acquire hardware. The most useful pieces of hardware I've obtained were an XEP-80, 1030, and SX212, from which I was able to determine a lot of previously unknown behavior... but that's also largely because no one has cared much about them. I'd still love to see a scope put on the 800's video output to find out what the heck it does to get that bizarro green-blue artifacting. Not being able to emulate that properly has been bugging me for a while.

 

So, any folks in the US able to help here, even a loan?

If you want to search it out I think synthepalooza? played with the color info I provided and performed artifact color blending with the background to adjust artifact color output...at the time I think it only worked on a real machine... the bottom line is timing in conjunction with pixel position and pattern effects the artifact and can be blended with background color to provide adjustment of the color.... I will try to search it out for you...

wow it wasn't as hard to find as I thought..

 

http://atariage.com/forums/topic/204355-artifacting-isnt-it-weird/?p=2802777

 

with a proper calibration routine for games by selecting one of two common artifact choices (odd / even) or (even / odd) and then setting the background color possibly at lower intensity... you can get almost all the machines to put out a very similar artifacted display...

Think this may be a bug or just my ignorance of the profile system...

 

When I set up a PAL or NTSC profile I set the artifacting up and the video system obviously, so I have a 400/800 NTSC with NTSC Artifacting on and a 400/800 PAL with PAL HI Artifacting on as a set of profiles..

 

In the profile I tick the category box colour as it says it stores the artifacting in that variable.

 

My issue is that the video system changes when I choose a profile but the artifacting stays the same for any profile, if I manually change it then it uses that one instead but again when I choose a different profile from a different video system the artifacting stays the same.

 

Is this how it is meant to be?

 

Ah, just looked in the registry and the artifacting it saves under colour is the actual pure colour settings including artifacting phase etc and not the actual Artefact setting from the video section.....Slight confusion there..

 

Avery, any chance you could add the video setting to be stored too or is that a big task?

 

Thanks, Paul..

 

Final edit, aha the settings are saved in one of the other category choices...All tip top now....Just thought it a bit odd, I'll get the hang of the profile system eventually :)

Edited by Mclaneinc

wow it wasn't as hard to find as I thought..

 

http://atariage.com/forums/topic/204355-artifacting-isnt-it-weird/?p=2802777

 

with a proper calibration routine for games by selecting one of two common artifact choices (odd / even) or (even / odd) and then setting the background color possibly at lower intensity... you can get almost all the machines to put out a very similar artifacted display...

 

This effect is well-known and is not the issue, as it is simply a result of the vector sum between the artifact and non-artifact colors. Altirra already emulates that. It's deriving the 800's unusual artifact colors that's the problem. Additive/subtractive colors doesn't have anything to do with it either, that's just two interpretations of the same physical effect (colors from light).

 

The problem is that while most computer models have artifacting colors that are roughly opposed to each other (180d), the 800's artifacting colors are very divergent from that, like >40 degrees off. And that's a problem if you're trying to model a passive filter circuit composed of resistors, capacitors, and inductors, because you cannot get that effect out of a linear model. One of the properties of a linear filter is that summing the outputs of two filtered inputs produces the same result as filtering the sum of the inputs. This means that if you have two signal patterns produced by even and odd pixels in GR.8 that combined produce white, they have to produce opposite colors in a linear model for white to be preserved. Among the implications of this:

  • Duty cycle between even/odd pixels doesn't matter, uneven pulses still produce opposite artifact colors (though they may differ in intensity and saturation). Not that screenshots from 800 systems have shown a significant imbalance between even/odd pixels anyway.
  • No amount of futzing with simulated capacitors will matter, it's still a linear system.

This is why I want to look at the signals on the 800 to see what's going on -- there's very clearly something non-linear involved.

it's not what your expecting, you want it to be a dead on fixed pixel, but remember it can be off by half a pixel and any point in between. there is a calculated somewhere around .15 difference... but nobody takes into account that its a whole display including borders....

 

while I struggle to give you what I am looking for in the recesses of my mind, the phenomena in my head is echoing with a vague conversation from long ago about pixel kerning,

this is what I do not see in the contemporary conversations. The pixels are in a fixed grid in terms of none, even odd, odd even, even even, and all, and then the inverse of this. but on the Atari we have a half color clock and the output is not always the timing you think it is... depending on the pixel pattern and the adjustment by half a clock and the distance between the pixels and adjacent pixels.

 

And yes you can effect the artifact output on an 8 bit Atari by changing a capacitor. It is an adjust by slight but an adjust all the same.

In order to get what your looking for it sounds like you want to hook up a couple of scopes to each Atari and map this out.... It's a moving target. because of the hybrid nature of the circuit. I'm starting to think that you've been working at this for quite a while. This is not just digital in nature but also analog. I suspect and hope that I've given something worth having out of all of this.

 

You can hack up an 800XL and find the cap and could take pictures of original cap, XE cap, and XL/XE cap. In order for to map this out you need to see the relationship of the output as it adjusts.. as the pair moves you should be able to correlate the information. do this for each Atari. You will see how the half clock is splitting between the adjacent position in the mask.

Edited by _The Doctor__

Do you have an 800? I have to assume you have scope or two or three or... :)

The 800XL's shift is red blue and green blue

The XE's shift is red green and blue green (in this example wrap around) emphasis is on dominant intensity first.

The 800 shift is almost blue green and green blue...

these then build on each other you continue the pattern...

hard to visualize?

 

think of it this way grbgrb now if you illuminate the pairs at a half color clock and slightly off in time and see what you get...

 

now to make it even more clear...

 

ggr/rbb/ggr/rbb do you see what's happening?

 

or

rrg/gbb/rrg/gbb and that makes this more clear....

 

do you see the clock alignment? dominant red minor green... that's orange.... dominant blue minor green that's the XE's blue...

 

now shift the clock! You will see ... shift it again! what do you see next?

 

r/rgg/bbr/rgg/bbr/rgg/bb (800?) and rr/ggb/brr/ggb/brr/ggb/b (xl?)

 

now what happens when you alter the half clock of adjacent pixels? if you change back to back you will have white where the colors meet or if not a space will be there.....now remember the clock is a little off and the effect of blending in the system, now you can use the cap to make a slight shift in this circuit..

 

I think I hurt my way back machine.... or perhaps I am holding tea and no tea... in either case thanks for straining the brain.. I remembered the damn thing now where's my peanuts for the headache, I want outta here before the vogons.....

Edited by _The Doctor__
  • Like 1

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...