I'm wondering if there are any Mockingboard/Phasor experts who can answer some very low-level questions. I've read the AY-8913 and AY-8910 datasheet, so I think I know what it says.
1) How should noise and tones be mixed together? My interpretation of
the mixer spec is that the tone is a simple square wave (of 0 and 1)
and similarly for the noise. So for one channel, should I just "xor"
them together, and then scale by the amplitude?
2) Envelope reset. If the envelope is not repeating (HOLD=1 or CONTINUE=0),
then what actions "reset" the envelope generator, so it can start
fresh again?
And these are lower priority:
3) Idle. The documentation says a channel is running unless the amplitude
control is set to 0. Does this mean the hidden counters counting
tones stop when the amplitude register is 0? Does anything "reset"
the internal tone counters? (The visible registers are the "reload"
values, there must be internal counters counting separately, using
the visible register as the "limit"). This only affects restarting
a channel that was stopped when amplitude=0 and whether the "old"
note finishing one period before using the new period.
4) Manual amplitude control. If the tone and noise generators are disabled
for a channel, what does the amplitude control do? Can software
write a pattern like 0, 0xf, 0, 0xf, 0, etc to the amplitude
control and create a manual waveform, even if the tone and noise
generators are off in the mixer control register? Or is the
effective tone/noise output==0, so there's nothing to amplify?
Kent
4) Manual amplitude control. If the tone and noise generators are disabled for a channel, what does the amplitude control do? Can software
write a pattern like 0, 0xf, 0, 0xf, 0, etc to the amplitude
control and create a manual waveform, even if the tone and noise
generators are off in the mixer control register? Or is the
effective tone/noise output==0, so there's nothing to amplify?
Kent
On Sunday, 16 August 2020 19:38:35 UTC+1, Kent Dickey wrote:
I'm wondering if there are any Mockingboard/Phasor experts who can answer
some very low-level questions. I've read the AY-8913 and AY-8910 datasheet, >> so I think I know what it says.
I can't really help answer your specific questions, as for AppleWin I
just spliced in GPL open-source code from another project (Fuse, a
Spectrum 128 emulator).
You can inspect the code here >(https://github.com/AppleWin/AppleWin/blob/master/source/AY8910.cpp), or >alternatively the MAME code should be a good source (which Apple in PC
uses - see: https://github.com/sosaria7/appleinpc).
Brendan Roberts may be able to help, as (IIRC) he wrote his own AY8913 >emulation code for Jace: https://github.com/badvision/jace
Tom
1) How should noise and tones be mixed together? My interpretation of
the mixer spec is that the tone is a simple square wave (of 0 and 1)
and similarly for the noise. So for one channel, should I just "xor" >> them together, and then scale by the amplitude?
2) Envelope reset. If the envelope is not repeating (HOLD=1 or CONTINUE=0), >> then what actions "reset" the envelope generator, so it can start
fresh again?
And these are lower priority:
3) Idle. The documentation says a channel is running unless the amplitude >> control is set to 0. Does this mean the hidden counters counting
tones stop when the amplitude register is 0? Does anything "reset"
the internal tone counters? (The visible registers are the "reload"
values, there must be internal counters counting separately, using
the visible register as the "limit"). This only affects restarting
a channel that was stopped when amplitude=0 and whether the "old"
note finishing one period before using the new period.
4) Manual amplitude control. If the tone and noise generators are disabled >> for a channel, what does the amplitude control do? Can software
write a pattern like 0, 0xf, 0, 0xf, 0, etc to the amplitude
control and create a manual waveform, even if the tone and noise
generators are off in the mixer control register? Or is the
effective tone/noise output==0, so there's nothing to amplify?
If anyone has some suggested "stress tests" for Mockingboard, I'm interested in them.
If anyone has some suggested "stress tests" for Mockingboard, I'm >interested in them.
Willy Byte, Lady Tut, Berzap.
All three do different things that have caused us trouble in one way or another.
The last two are part of Total Replay, if that's any help.
We're still looking for a clean copy of Willy Byte, but it's the
existing cracked version that shows the Mockingboard weirdness.
In article <55cc4759-9c0d-49fe-b9f5-dfcd7db0db3dn@googlegroups.com>,
qkumba wrote:
If anyone has some suggested "stress tests" for Mockingboard, I'm >interested in them.
Willy Byte, Lady Tut, Berzap.
All three do different things that have caused us trouble in one way or another.
The last two are part of Total Replay, if that's any help.
We're still looking for a clean copy of Willy Byte, but it's the
existing cracked version that shows the Mockingboard weirdness.
Thank you for the suggestions.
I'm not planning on emulating the speech chip currently, and reading
the AppleWin bug reports seem to indicate Willy Byte and Berzap had trouble with the speech chip. My big issue with the speech chip is I don't know where/how to get the phoneme samples. So I'm just emulating a Mockingboard A.
In any case, although I didn't really play any of the games, they do seem to start and play Mockingboard music fine. I have a version of Berzap which crashes on booting, but I suspect it's a IIgs compatibility issue (since
the cracked version works).
Kent
re. "stress tests" for Mockingboard
You mentioned that other French Touch demos don't work on the IIgs. I
don't know if these work or not (on the IIgs), but the following all do >sample playback via the Mockingboard's AY8913:
http://fr3nch.t0uch.free.fr/TLB1/TLB1.dsk >http://fr3nch.t0uch.free.fr/FKF/FKF.dsk >https://github.com/Fr3nchT0uch/digidream/releases/download/v0.6/DD.dsk
These all work in AppleWin and MAME (apple2ee). The digi-drums (in
DD.dsk) are too quiet in AppleWin (cf. MAME or real Apple II
w/Mockingboard). This probably aligns with your comment that MAME's
AY8910 emulation is considered the gold standard... since AppleWin is
using FUSE's (not MAME's) AY8910 emu code.
Tom
Sysop: | Keyop |
---|---|
Location: | Huddersfield, West Yorkshire, UK |
Users: | 295 |
Nodes: | 16 (2 / 14) |
Uptime: | 03:57:21 |
Calls: | 6,642 |
Calls today: | 2 |
Files: | 12,190 |
Messages: | 5,325,736 |