Re: [hatari-devel] 8 runes of aerillion doesn't have sound

[ Thread Index | Date Index | More lists.tuxfamily.org/hatari-devel Archives ]




> Le 16/03/2024 à 23:07, Nicolas Pomarède a écrit :
> 
> > Le 10/03/2024 à 21:45, Nicolas Pomarède a écrit :
> > 
> > > Le 10/03/2024 à 08:32, Laurent Sallafranque a écrit :
> > > 
> > > > Maybe this can help.
> > > > 
> > > > I use a variable : "music_sequence_index" to keep the current sample
> > > > index.
> > > > I've traced my code and I see that "music_sequence_index" goes from
> > > > 0(*8) to 2(*8) immediately at the beginning of the music,
> > > > which means there's an interrupt played immediately after the
> > > > beginning of the music.
> > > > 
> > > > The VHS intro plays a sample without interrupts.
> > > > I stop the music between the VHS screen and the intro of the demo.
> > > > The sample is bigger than the effect length, so, I stop it, load the
> > > > 1st music sample into memory and start to play the music.
> > > > 
> > > > In the music_start code, I add #8 to "music_sequence_index" because
> > > > I read this value at the beginning of the interrupt code to load the
> > > > next sample.
> > > > I also increment by #8 this variable during each interrupt in the
> > > > interrupt code.
> > > > 
> > > > The traced value of 2(*8) for the variable means that there's a
> > > > first interrupt triggered.
> > > 
> > > Hi
> > > 
> > > thanks for the information.
> > > 
> > > What Hatari does at the moment is that it triggers an interrupt (TAI
> > > or GPIP7) when sample start playing (this is because SNDINT signal
> > > goes from idle to playing).
> > > And optionaly it triggers an interrupt when reaching the end of the
> > > sample buffer (if value is set at $FF8901)
> > > 
> > > I thought signal always goes from idle to playing when starting a
> > > sound, but from what you describe it seems it's not the case, because
> > > this extra interrupt at start explains why sample 1 is not played and
> > > it "jumps" directly to sample 2.
> > > 
> > > That would mean DMA sound triggers an interrupt at start only if
> > > FF8901 is not enabled to trigger an interrupt at the end (Hatari
> > > allows both at the moment)
> > > 
> > > I need to write a small test program for falcon that would check the
> > > different cases (loop yes/no and interrupt at end yes/no), because so
> > > far the lack of real documentation from Atari makes it difficult to
> > > emulate.
> > 
> > Hi
> > 
> > looking at the demo, I see that the 1st sample is skipped because when
> > you stop the music after the vhs-like / blue screen then dma sound
> > channel goes to idle (=1) and this trigger the un-wanted gpip7
> > interrupt because bit 7 in MFP's Active edge register is set to 1 (so
> > 0->1 transition on GPIP7 will give an interrupt)
> > 
> > This is not the TOS default value, usually AER's bit 7 = 0 (transition
> > on 1->0 on gpip7)
> > 
> > I see that at the start of the demo you save MFP content and you also
> > do this :
> > 
> > 0001fd14 0838 0007 fa01 btst.b #$0007,$fffffa01.w
> > 0001fd1a 6608 bne.b #$08 == $0001fd24 (T)
> > 0001fd1c 08b8 0007 fa03 bclr.b #$0007,$fffffa03.w
> > 0001fd22 6006 bra.b #$06 == $0001fd2a (T)
> > 0001fd24 08f8 0007 fa03 bset.b #$0007,$fffffa03.w
> > 0001fd2a 08b8 0007 fa0b bclr.b #$0007,$fffffa0b.w
> > 0001fd30 08f8 0007 fa13 bset.b #$0007,$fffffa13.w
> > 
> > It checks bit7 of of GPIP7 (dma sound status) and depending on that it
> > changes AER bit7. And in this case it sets AER bit7=1 insted of
> > leaving it to 0 (because dma sound is idle when starting the demo from
> > tos)
> > 
> > Why is this needed, can you tell what's the purpose of changing AER ?
> > 
> > Nicolas
> 
> Hi,
> 
> 
> But, as it worked for "Electric Night" on the real hardware, I think it
> should be emulated, no ?
> 
> (I can modify the code of electric night and deliver a new version, but
> I would prefer Hatari to be closer to the real hardware if possible).
> 

Hi, as a sidenote;

when you asked me to record Electric Night all those years ago, I remember you said the demo was out of sync in my recording when I had captured from a real Falcon.

--
Anders Eriksson
ae@xxxxxx




Mail converted by MHonArc 2.6.19+ http://listengine.tuxfamily.org/