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

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


> Le 17/03/2024 à 10:22, Anders Eriksson a écrit :
> 
> > > 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.
> > 
> Hi Anders,
> 
> 
> Sadly, I've lost all my mails before 2021, so I can't retrieve these old
> exchanges.
> 
> Just to be sure, the video on Youtube was encoded from the real falcon ?
> 
> At least, I remember the demo ran on the real falcon at the sillyventure
> and at home.
> 
> I'll run it again on my falcon this afternoon to be sure it works like
> this on the real falcon.
> 

Hi,

no you decided we should use the Hatari recording for Youtube instead :) 

It seems like I didn't delete the Falcon recording, just made it unlisted, here so here it is: https://www.youtube.com/watch?v=LK1Xs3WfXqM


--
Anders Eriksson
ae@xxxxxx





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