Menu

#330 No sound with some custom loaders

v1.2
closed-fixed
None
5
2016-04-26
2016-02-24
No

It seems that some custom loaders don't produce any loading sound at all.

I noticed this with Ranarama, but there are probably others.

Related

Bugs: #354

Discussion

  • Sergio Baldoví

    Sergio Baldoví - 2016-02-28

    Apparently broken since [r4021]. The tape_microphone variable is 0 while loading the custom data block.

     

    Related

    Commit: [r4021]

    • Fredrick Meunier

      I guess this happens as we currently only output sound when the border colour changes, rana rama has a black border throughout the turbo block loader.

       
      • Alberto Garcia

        Alberto Garcia - 2016-02-29

        That's not the case:

        La Abadía del Crimen has a flashing border but does not have sound either.

        AMC and Extreme have a black border but they do have sound.

         
        • Fredrick Meunier

          Thanks for nominating some more sample programs - the attached patch is a little hacky (the test in ula.c should be a little smarter) but seems to take care of Rana Rama and La Abadia del Crimen for me, does it also work for you?

           
          • Alberto Garcia

            Alberto Garcia - 2016-02-29

            I tried the patch with Fuse 1.1.1. It seems to work fine now, thanks!

             
  • Fredrick Meunier

    • status: open --> pending-fixed
    • assigned_to: Fredrick Meunier
     
  • Fredrick Meunier

    Committed a proposed fix in [r5358].

    The bottom line is that we need to mix in the tape sound as it is generated externally not by the ROM, but the ROM routines that are writing sound to the beeper need to not overwrite the tape part.

    I don't want to lean on tape_is_playing() as there are occasions where a short beep tune is played while the tape is running (e.g. on some Ultimate titles).

    Please let me know if you see any issues with the committed version of the fix.

     
    • Alberto Garcia

      Alberto Garcia - 2016-03-01

      It seems to work fine, thanks!

       
    • Sergio Baldoví

      Sergio Baldoví - 2016-03-01

      Looks good. I guess extra parentheses were for this gcc warning...

      peripherals/ula.c: In function ‘ula_write’:
      peripherals/ula.c:125:41: warning: suggest parentheses around operand of ‘!’ or change ‘|’ to ‘||’ or ‘!’ to ‘~’ [-Wparentheses]
                       (!!(b & 0x10) << 1) + ( !(b & 0x8) | tape_microphone ) );
      
       
      • Fredrick Meunier

        Thanks Sergio, addressed in [r5359].

         

        Related

        Commit: [r5359]

  • Fredrick Meunier

    • status: pending-fixed --> closed-fixed
     
  • Sergio Baldoví

    Sergio Baldoví - 2016-04-26
    • Group: future --> v1.2
     

Log in to post a comment.