Jump to content
-^CrossBow^-

AtariVox+ Few oddities

Recommended Posts

Let me know if I can help.

I have an original AtariVox (just for Atari), 3 AtariVox+ from the.golden.ax, a good (older) and a bad (newer) 7800, and all kinds of 2600's from H6ers, light 6ers, Jr., Gemini, Exp. Module 1, to Intv system changer.

Mine is a few years older, from the first AtariVox+ units, soldered by Glenn Saunders and distributed by the.golden.ax. I believe the AA units are pretty much the same.

Another tester has an AA unit like yours, and can't reproduce the issue either. So I don't think the problem is the whole vox unit, but possibly a problem with certain speakjet chips.

If your 2600 testing is able to reproduce the problem, then I think the problem might be a bug in the speakjet reset-pitch+speed command. We'll try a version that skips the command and just queues everything, to confirm.

If your 2600 testing isn't able to reproduce the problem, I think it must be some sort of combined issues with both the 7800 and the speakjet contributing. This might be a bit harder to isolate.

Share this post


Link to post
Share on other sites

Tonight when I get home I will form a default set of tests that I will run using the red screen version of the 2600 binary on both of my 7800s to note any differences, and on 3 or 4 different 2600s if I can find them all. I have essentially every model of the 2600 released but they aren't all at the ready LOL!

 

I know right off hand I have access to a Sears H6, Atari H6, Atari 4switch, Vader, and a Jr unit. On my 7800s, I only have the two. Both are SN# as if from the late 80s, but one of them has the expansion port populated and appears to be a reworked '84 revision board. The other is the one I've been mainly using for testing.

 

I will try and chart it out in some way... See if there is a pattern. At the very least if the same gamut of testing gives me slightly different results on units it might help to isolate which IC is really to blame?

 

And sure I can send my AVox+ to you Richard, but the shipping from here to the UK isn't pretty. I wonder if would be easier to just order a replacement speakjet or have one sent and test that since they are in a socket I believe?

  • Like 1

Share this post


Link to post
Share on other sites

Crossbow: 9600 baud isn't an option. 9600 is the default for speakjet, but before it's usable for AtariVox it's changed to 19200 baud. This is stored in the speakjet internal eprom, and not changeable on the fly. IIRC to change the baud rate you need to change the usual state on a (non-serial) speakjet pin or two and then send it a particular sequence of bytes.

 

Thanks for all of the testing help!

 

KS: for RIOT you specify the direction (input vs output) on a pin by pin basis. The AtariVox driver only outputs on specific player 2 pins. The player 1 pins are in the normal input mode.

 

iesposta: if you can replicate the issue anywhere, it would add to the data Crossbow is collecting, which might make any patterns clearer.

  • Like 1

Share this post


Link to post
Share on other sites

 

 

I wonder if would be easier to just order a replacement speakjet or have one sent and test that since they are in a socket I believe?

 

Send the SpeakJet chip back to Albert and he will re-program it.

 

I've got a feeling the chip's baud rate is slightly off.

Share this post


Link to post
Share on other sites

 

Send the SpeakJet chip back to Albert and he will re-program it.

 

I've got a feeling the chip's baud rate is slightly off.

 

Why you think that? And would that mean that others reporting the same issue with Dungeon Stalker might also have the same issue?

 

Wish i had a chip reader now LOL.

Share this post


Link to post
Share on other sites

 

Send the SpeakJet chip back to Albert and he will re-program it.

 

I've got a feeling the chip's baud rate is slightly off.

Albert has the Speakjet source code? :o Why else these guys sell a $4 microcontroller for $20 with custom firmware they created? :P

Share this post


Link to post
Share on other sites

 

Why you think that? And would that mean that others reporting the same issue with Dungeon Stalker might also have the same issue?

 

Wish i had a chip reader now LOL.

 

There is a circuit that you must put the SpeakJet chip into, apply 5V, and it sets the baud rate from a program contained in a PIC chip that Richard made.

It's not really programming the chip, just setting the faster baud rate. I guess the baud rate could get changed or set wrong infrequently. My 7800's love to kill my Harmony firmware... re flashing always brings them back.

 

I have built one of these circuits, with the PIC from Richard, but I have yet to use it. (I was building an AtariVox+ before they became available again, plus I had found an original AtariVox (those sing, "Atari VOX!' where the new ones just say Ah-TAR-e vox) and mid-build my Mom passed suddenly, unexpectedly and quickly, so I still have that as a hobby project to build one day.)

Edited by iesposta

Share this post


Link to post
Share on other sites

 

I have built one of these circuits, with the PIC from Richard, but I have yet to use it. (I was building an AtariVox+ before they became available again, plus I had found an original AtariVox (those sing, "Atari VOX!' where the new ones just say Ah-TAR-e vox) and mid-build my Mom passed suddenly, unexpectedly and quickly, so I still have that as a hobby project to build one day.)

Is there an audio clip regarding the new and old voices? Mine was assembled by the.golden.ax before they were available in the AA store and has a different label.

 

Also so sorry to hear about your mom... :sad:

Share this post


Link to post
Share on other sites

Albert has the Speakjet source code? :o Why else these guys sell a $4 microcontroller for $20 with custom firmware they created? :P

 

No. It is not putting SpeakJet code onto the SpeakJet chip.

It's just a circuit to set the baud rate higher.

It is explained how to set the baud rate in the SpeakJet documentation.

 

Richard's program that Albert uses just sets the baud rate and the startup tones and speech.

Share this post


Link to post
Share on other sites

A fascinating update by Jinks - apparently his console has the AtariVox issue with the Dungeon Stalker cart, but the same ROM run through the Concerto cart doesn't.

 

Any theories why this would be? Is it possible power conditioning on the Concerto is cleaning things up?

Share this post


Link to post
Share on other sites

I am hoping someone else who has:

1. Concerto cart

2. Dungeon Stalker Cart

3. Avox

4. A 7800 that Avox shuts down on Dungeon Stalker Cart Usually on the first Wizard Battle after level one.

Tries their 7800 with the Concerto and see if the Dungeon Stalker file ever causes the Avox to shut down while playing.

Just to reconfirm my findings.

I play about 6 hours of 7800 a week nowadays so I find strange things now and then.

Share this post


Link to post
Share on other sites

Corroboration would be nice, but even if this doesn't work for anybody else, it's still a significant data point that Concerto fixes the vox issue on your system. This would seem to rule out baud rate as a culprit.

 

I'll recap what we seem to know at this point:

  • [-^Cro§Bow^- ] Adding a 220uf cap to power+ground, and replacing the linear regulator doesn't fix the issue.
  • [-^Cro§Bow^- ] The problem happens on both the 2600 and 7800, with very ordinary phoneme data being sent. Dungeon Stalker is unique in the amount of voice data it sends, with multiple phrases sometimes coming in within a very short window.
  • [-^Cro§Bow^- ] The 2600 is a bit more resistant to encountering the issue.
  • [-^Cro§Bow^- ] On the 2600 triggering speech with the joystick button can't replicate the problem, but triggering with the joystick directions can. RIOT is used to read joystick directions, TIA is used to read joystick buttons. The AtariVox communicates through 2nd port RIOT joystick directions.
  • [-^Cro§Bow^- ] The "buffer full" line is triggered on all tested units. (but likely inconsistently on units exhibiting the vox problem. It does appear to be a buffer issue, since it only happens when you send a lot of data in a short period)
  • [jinks] Running the Dungeon Stalker ROM on Concerto seems to fix the issue, compared to running from a regular EPROM based board. (problem was reproduced when -^Cro§Bow^- used Mateos and Harmony)
With the exception of the first point, the rest seem to point to power conditioning, possibly with an influence on "buffer full" logic level (or threshold crossing rate of same). Maybe the 220uf was too large to fix very quick sag, and/or too far from the vox?

Share this post


Link to post
Share on other sites

Next is to try the 2600 avox testing I used on the Harmony and try it with an Encore? Or is the tech too similar between them? My Harmony is a first release version if that makes a difference?

Share this post


Link to post
Share on other sites

Okay, I figure instead of going more off topic in the previous thread it would be better to add something slightly new to this original one.

 

I remembered that I now have a 3rd 7800 that I got from an AA member here a few months back and had repaired to working order. I tested it today with Dungeon Stalker and the Avox+. This one behaved a tiny bit differently in that I was able to play through two complete rounds of the game with full speech until it finally hosed up. What happened here is that I defeated the wizard and for the first time I heard the speech stating "Wizard Defeated" in game. I played all through the second level will full speech and got to the wizard again. I defeated him the second time and instead of saying "Wizard Defeated" or anything really..it just started to play the Atarivox opening tones, but very slowly. Like 1 tone for each second or just a tad longer. No gibberish speech..but then again nothing at all until I power cycled the 7800.

 

So at least on this 3rd 7800 it take quite a bit longer before the game stops the Avox+ but it does indeed still do it. The Avox+ is plugged directly into the 2nd player port and this 7800 is all stock. The only repairs I did was to swap out the 7805 with a new 1amp output replacement from console5 and replaced the power jack that was missing on this one plus a replacement power switch as this 7800 shows signs of rust on it and the original power switch was just...shot.

 

Anyway..thought it was interesting that this one lives a bit longer playing speech before going south.

 

This 7800 is marked on the bottom:

 

A1 7 C 5152641

 

Not sure it helps...but there it is..I'm going to load up the other test program onto my uno and see what that gives me on this one and my other primary 7800.

Share this post


Link to post
Share on other sites

Okay,

 

So I've tried to use the keypad delay test program that Smitty made up on this 7800 and I'm either not doing something right, or there isn't an issue to be found?

 

Placed the test file on my Mateos with the 16K ext...it loads up just fine. Without a video touch pad in port 2 you just see a 0 displayed in the grid.

 

Plug in a video touch pad and you see nothing lit up on the grid. Default value is set to 255 below that. I can press the 0 key or any other key and it seem to show up just fine. I changed the delay to 001 and it still seems to display the numbers just fine when I press them? Is there something specific I should be able to see here?

 

I did notice that if I press a single button quickly..that I will see ghost numbers along that same vertical grid appear. So if I press the 0 key quickly I see 2, 5, and 8 show up above it for like 1 or 2 frames or something...but they never stay there. This doesn't really seem to change regardless of what values I place in the delay below it. Pressing multiple buttons will cause more of these ghost digits to appear in the respective vertical columns of the numbers I'm actually pressing. So pressing down on 7 and 9 at the same time quickly will alter between the 7 and 9 showing up depending on which I pressed first I guess and I will also see the 1,3,6...etc appear for a brief frame or two as well.

 

Again, this will occur on this 7800 no matter what values I have set.

Edited by -^Cro§Bow^-

Share this post


Link to post
Share on other sites

Again, this will occur on this 7800 no matter what values I have set.

 

Maybe that's part of the issue.

 

If I set the delay to 1 the right hand side of the pad will appear to work fine but the left and centre rows will always register as the lowest key.

 

post-27819-0-22180800-1537035864.jpg

 

post-27819-0-15310300-1537035869.jpg

 

On a closer look you can see that it's actually not even registering every frame, here I'm using my LCD and the various interlacing filters have kicked in to try and make sense of the flickering.

 

post-27819-0-09875100-1537035874.jpg

 

If I increase the delay to about 50 then I get readings from every key but also significant ghosting. It's not until raising the delay to about 120-150 that the ghosting goes away, but it does go away.

 

 

I'm also writing a utility for my own benefit to test speech on the fly using the SpeakJet reference sheet. I've attached the work in progress here in case you can find a use for it. up and down change your position in the list, left and right change the value, hold the left button to speed up value changes, press the right button to play the sound.

AVoxTest.bas.bin

Share this post


Link to post
Share on other sites

I guess I will make a video to show the results I'm getting with this 7800. I currently how it out of the case an only going through RF. It is stock otherwise other than the few repairs I had to do when I first got it.

 

The keys are registering exactly as they should be regardless of what values I place. I've not tested this with my other primary 7800 to see if I get different results but I will.

Share this post


Link to post
Share on other sites

Right I misspoke on this now that I know what to check. With it set to 1 I get the same results and they look the same with the characters looking not quite there. However, the third column registers all presses just fine at delay 1. On this one the keys don't register properly until I get to 57. However, at that setting if I press 1 and any other key then I will show a 2 and 0 that are ghosted instead of the 1 or second digit I have pressed. That doesn't seem to stop until I get to 62. From there it seems to be fine. That is on the A1 7 C unit.

Share this post


Link to post
Share on other sites

Okay my primary 7800 has the following done to it:

 

UAV added

RF Modulator removed

+5 DC-DC 1amp output Traco converter in place of the original 7805

Alps brand switches installed on the front panel

RIOT was replaced about 2 years ago when I first discovered my Avox+ wasn't saving high scores

Recapped

 

So yeah it is modded system. Here the results from it:

 

Normal single button function doesn't work properly until I get to 56 on the delay. Two buttons pressed like 1 and then 2 while still holding down 1..works once I get to about 62. But holding down 7 and 8 will show a 7 and ghosted 8 and 0 at that delay. That doesn't show correct until I get to 67 on the delay. I see very little ghosting otherwise likely due to the motion compensation that my Extron does for all analog signals I feed through it.

 

So there is difference between them, but not much...

 

Same power supply was used also btw on these two. Kill-a-watt reports a steady 120.2v from the AC today... (lower than usual...interesting...)

 

Model # on this one is: A1 86

Share this post


Link to post
Share on other sites

I've been playing around with my voice tester program and I experienced a variety of different behaviours. I gave it a test phrase with a couple of pitch changes to make it sound more natural, and I could play that without issue. If I tried to play it 4 or 5 times in quick succession then I'd get some brief noise at the end of the phrase but it would stop and the phrase could be played again after. If I played it 8 times then I'd run into the issues.

 

One time it would play sound for the correct length of the phrase, but as if all the values were wrong, leaning towards 192+. if I moved the end marker it would change the length the sound would play even if the values between the old stop and the new stop were all 0.

 

Another time it continue playing but then eventually stopped when I put the reset command 31 in the first slot and tried playing again. It then acted normally from that point onwards though I couldn't replicate that fix.

 

A couple of other times it would just continue playing sounds for a period, mostly the dial tones, the sonar ping, the pistol shot, and the wow sound. It would then stop until I tried to play the sound again and it would continue for an arbitrary length of time. To me it sounded as if it was being fed code as data and only stopping when it hit a 255, then carrying on from where it left of.

 

 

So I really can't tell what's happening. To try and reconcile it all would be to say that it's skipping the end markers, but also not, and bits 6 and 7 are always high, except when they aren't.

Share this post


Link to post
Share on other sites

Hello all,

 

I'm joining this discussion kind of late, but I am developing a game (Wizard of Wor Arcade) for the 2600 that is exhibiting the same behavior described in this thread (the Avox will reset mid-speech). Interestingly, this is only happening on one computer (ZeroPageHomebrew's 2600) and was discovered a few days ago when preparing to demo the game during a twitch stream. Are there any software/hardware suggestions for correcting this issue? I see Richard H. suggested that the AtariVox+ be reprogrammed by Al as it may be a baud rate issue. Has anyone tried this and had success?

 

I have modified my code to ensure that multiple phrases don't overlap (that Wizard is a chatty fellow) and we've seen more resets based on certain phrases vs. others, but there is no conclusive evidence yet.

 

Any help is greatly appreciated!

 

Thanks,

John

  • Like 2

Share this post


Link to post
Share on other sites

Hi John,

 

I wish I had better news here, but I've had no success addressing the issue from the 6502 software end.

 

It looks like the RIOT pin connected to D0/Ready line doesn't get the signal change in time (or perhaps, not every time) to prevent the AtariVox buffer from getting stuffed.

 

As to why, it seems worse when there's joystick action involved (other RIOT pins being grounded). But changes in an individual's power adapter, console, and AtariVox, don't provide relief. Similarly, people who don't experience the problem, don't experience it on multiple consoles and power supplies.

 

I've tried only sending bytes every other frame, but that didn't eliminate it. I've tried adding a secondary software queue, but it was too difficult to accurately track the phoneme lengths. I've eliminated perceived "problem phrases", but that didn't eliminate the issue. I've tried tweaked baud rate from the 7800 driver end, with no relief.

 

I'd really like for someone with the issue to scope the power, ground, and RIOT pins involved, to look at the quality. A logic trace of the buffer getting stuffed would be nice too. So far nobody with the issue has a scope or necessary skills, nor do they have a UPS to rule out external power quality.

 

That's the state of the union, sad as it is.

 

Cheers,

-Mike

  • Like 2

Share this post


Link to post
Share on other sites

I'd really like for someone with the issue to scope the power, ground, and RIOT pins involved, to look at the quality. A logic trace of the buffer getting stuffed would be nice too. So far nobody with the issue has a scope or necessary skills, nor do they have a UPS to rule out external power quality.

 

That's the state of the union, sad as it is.

 

Cheers,

-Mike

 

Actually I do have a scope... not recent and it is strictly old skool analog. But I got a 30mhz B&K that was made around when I was born LOL!

Share this post


Link to post
Share on other sites

If you're game, when you get a chance can you please hook up the vox, light up the 2600 test, trigger the phrases, and check out the following?

  • Probe +5v=joy2_pin7 with ground=joy2_pin8. Observe if the signal is flat at various scales, and the voltage level is constant, even when you stuff the buffer. (first with joystick button phrase triggers, and later with joystick moves)
  • Probe speakjet_ready=joy2_pin2 (same ground). Observer if the signal is flat, and transitions when you stuff the buffer. (first with joystick button phrase triggers, and later with joystick moves)
I get that it's an analog scope, and you won't be able to check the quality of transitions. Just fishing with the gear we have access to.

 

The pinout below is for your convenience.

 

post-23476-0-35155300-1538063381.jpg

  • Like 1

Share this post


Link to post
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...

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...