Jump to content
IGNORED

Is Voice Possible in Pole Position?


Tempest

Recommended Posts

As I was playing around with Pole Position today I got ot thinking about the arcade game and how it had that really cool voice that said "Prepare to Qualify" at the begining. I was always amazed at how clear it sounded and though it added alot of charm to the game.

 

I was wondering if it would be possible to add the voice to the 5200 version of Pole Poisition in the way voice was added to the 2600 version of Bezerk. I assume that it was left out due to time contraints and not due to memory considerations. Would the screen have to be blanked when the voice was playing (like it is in Berzerk) or could the blimp still move across the screen?

 

Is this at all possible?

 

Tempest

Link to comment
Share on other sites

Berzerk for 5200 has voice without screen blanking, many 800 games do to. It's pretty easy to play samples without screen blanking -- many music trackers and software do it (listen to the Space Harrier audio on Sheddy's game)...

 

I assume it was just lack of ROM space that prevented such features from being added :)

 

sTeVE

Link to comment
Share on other sites

Berzerk for 5200 has voice without screen blanking,

 

You're right. I was thinking about the voice between screens, but it does play on screen too.

 

Soooo... Anyone want to hack the voice into Pole Position and make me a very happy person? :)

 

Tempest

Link to comment
Share on other sites

Here's a question, How do you make these samples? Can you convert windows samples? Is there a dos recorder that makes these 4 bit samples? I have been toying with the idea of adding voice to my homebrews, I think I might have the playback down but I haven't been able to make my own samples. any ideas?

Link to comment
Share on other sites

Sorry Tempest, no time to do it myself (got to see a man about a dragon...)

 

I had trouble getting the samples into the Atari too.

With a bit of trial and error this is what I found on the samples I was looking at:

 

Once you have a .wav file though it's not too bad if you know the original sample size 8-bit/16-bit and rate. There's no compression or anything on .wavs

 

I had to knock up some VB code to convert it to 4-bit, although there may well be some utility to do it already somewhere - my brother's copy of soundforge couldn't do it though!

 

There's about 43 (or 44?) bytes in the .wav header. After this in the 8-bit samples I looked at they were just signed integers (-127 to 128) of the volume level. 0 means quiet, -127 speaker full out one way, 128, full out the other way. I guess the header tells you somewhere whether they're signed or not, but it was easy to tell by the godawfulness of the sound when it was wrong! So simply a matter or some division on each byte to get it to +/-7.5 for the Atari.

 

4000 4-bit samples/sec sounds sort of OK, 8000 is pretty good.

But the sample rate is straightforward to pick - once you know the little secret about sample playing with the screen going....

 

try something like SAM with a 4k or 8k screen on, and it sounds like he's really drunk - slurring awfully. Why? The DMA fetches for the screen data slow the processor down, and you can't time precisely enough when to do the next sample, without your ears noticing. So you need something external for the 6502 to get its timing from. Maybe you can try Pokey interrupts - but they seem to get affected by the DMA fetch too! (and no emulator does them properly yet either). That only leaves a couple of things that change quickly enough and reliably enough to use to re-synchronize the processor - either WSYNC or VCOUNT - which aren't affected by DMA. These registers get changed at the end of each scanline. VCOUNT changes every other scanline, and goes from a value of 0 to 130 (NTSC TV) in each TV frame. 60 frames in a second. So 60*131=7860 changes per second. Voila - 7860 samples a second is not too shabby a number to choose - or 3930.

 

Well, jeez, I said a bit more there than I intended. Sorry about that everyone else - turned into more of a programming thing there. :yawn:

Link to comment
Share on other sites

I agree with JetBoot - most likely memory restrictions.

Working it in could be very hard without upping the ram requirements or creating a new cart version.

 

Hve - I'm too tired after all that typing in the reply yesterday! EmKay - where are you today?!

Link to comment
Share on other sites

VCOUNT changes every other scanline, and goes from a value of 0 to 130 (NTSC TV) in each TV frame. 60 frames in a second. So 60*131=7860 changes per second. Voila - 7860 samples a second is not too shabby a number to choose - or 3930.

 

 

This is maybe the best way for playing samples.

7860 Steps ... that means ~ 3930 Hz for speech to quantize ... It's truely ok.

Link to comment
Share on other sites

Are you guys saying that to get speech on the 5200, you must read & change the sound register values on every scanline?

 

Well, not quite, but it needs to be about that kind of speed for it to sound OK with 4-bit samples. VCOUNT changes every 2 scanlines. Syncing to vcount gives you just under 8000 samples per second, and like EmKay says the quality is not bad. Every scanline gives you twice that of course.

 

I'm using every other VCOUNT in the Space Harrier demo so I have a bit of time to do some other stuff - and I think it sounds reasonable enough

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

  • Recently Browsing   0 members

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