mist-devel / plus_too

Mac Plus/SE in FPGA
11 stars 2 forks source link

does this one has sound FX? #3

Open jsmolina opened 7 months ago

jsmolina commented 7 months ago

Hi @gyurco I am very sorry as I am using issues in an unintended way.

Lode Runner has missing all sound FX (e.g. Lasers) in the port from this core to Mister.

Does this work on Mist port? I don't have a Mist to test it.

I just wonder if Mister misses the feature or it's an issue related to timings.

gyurco commented 7 months ago

It's quiet for me. But it has a winning tune when finishing a level.

jsmolina commented 7 months ago

It's quiet for me. But it has a winning tune when finishing a level.

doh, so I guess it has some missing audio implemented. Lode Runner should have sound FX ingame.

like this https://www.youtube.com/watch?v=LibdK10cegA

It was my only game in my mac 128k appart for 'millionaire' 😄 (old times, no Internet)

gyurco commented 7 months ago

Could it be OS dependent? As I run it on OS 7.something, which might be too new for some older games. Maybe it would be worth to try on 6.0.8 or even older, if you can.

jsmolina commented 7 months ago

Could it be OS dependent? As I run it on OS 7.something, which might be too new for some older games. Maybe it would be worth to try on 6.0.8 or even older, if you can.

It might, but I tried just booting the good old floppy image which has just the right version. And it has the same issue.

gyurco commented 7 months ago

Maybe it doesn't use the MAC OS service for sound effects, but does some hardware trickery using the VIA directly? Or the sound hardware has some speciality like on the C64, by rapidly changing the volume register, a digital sound can be created?

jsmolina commented 7 months ago

just wondering, from an ieee explore article: `By adding a pulse-width-modulator circuit, the video circuitry could be used to generate sound during the last microsecond of the horizontal retrace... During the retrace the video-scanning circuitry jumped to a block of memory earmarked for the amplitude value of the sound wave, fetched bytes, deposited them in a buffer that fed the sound generator, and then jumped back to the video memory in time for the next trace. The sound generator was simply a digital-to-analog converter connected to a linear amplifier. With data in memory corresponding to the amplitude and frequency of the sound emanating from the speaker

To enable the sound generator to produce four distinct voices, software routines were written and embedded in ROM to accept values representing four separate sound waves and convert them into one complex wave. Thus a programmer writing applications programs for the Macintosh could specify separately each voice without being concerned about the nature of the complex wave. `

as the final sound works (the music), but not the FX. I guess it's what you say: some hardware trickery, but I see no documentation

jsmolina commented 5 months ago

is it feasable? @gyurco I offer myself for testing

gyurco commented 5 months ago

I don't know how should it work. If you have some clues, then please share.

jsmolina commented 2 weeks ago

from wiki it looks like it uses raster to play sound

image

image

@gyurco https://archive.org/details/Guide_to_the_Macintosh_Family_Hardware_Second_Edition/page/71/mode/2up

In the Macintosh SE and classic Macintosh computers, the general logic circuits read a word of data for the sound and disk-speed control just before each horizontal video line begins. The high-order byte of this word is used for sound and the low-order byte for diskSpeed control. Every 44.93 JLLs, the pulse-width modulator (PWM) PAL in the Macintosh Plus, or the BBU in the Macintosh SE, generates a pulse, the width of which depends on the sound value read from RAM. This train of pulses is sent to the Sony sound IC, which integrates it into a smoothly varying waveform. The amplitude of the waveform is adjusted in the Sony sound IC according to a 3-bit value from the VIA, and the signal is sent by the sound IC to the internal speaker or external sound jack.

image

jsmolina commented 6 days ago

From MrMartian: Thank you! I've been looking for a while for a nice easy description of how the sound works in the old Macs. I believe the current core tries to output that byte as a D-A type value, not driving a PWM....